From 48a2c9daab095afe4d081da62b03761b6354789a Mon Sep 17 00:00:00 2001
From: pfperroni <pfperroni@inf.ufpr.br>
Date: Mon, 3 Jul 2017 14:08:39 -0300
Subject: [PATCH] Add project files

---
 cpp/CSMOn.cpp                                 |  200 +++
 cpp/CSMOn.hpp                                 |   99 ++
 cpp/ISearch.hpp                               |   76 +
 cpp/PSO.cpp                                   |  195 +++
 cpp/PSO.hpp                                   |   72 +
 doc/CSMOn.pdf                                 |  Bin 0 -> 148232 bytes
 doc/html/CSMOn_8cpp_source.html               |  281 ++++
 doc/html/CSMOn_8hpp_source.html               |  176 ++
 doc/html/CSMOn_8py_source.html                |  214 +++
 doc/html/CSMOn__wrapper_8cpp.html             |  203 +++
 doc/html/CSMOn__wrapper_8cpp__incl.map        |    5 +
 doc/html/CSMOn__wrapper_8cpp__incl.md5        |    1 +
 doc/html/CSMOn__wrapper_8cpp__incl.png        |  Bin 0 -> 23948 bytes
 doc/html/CSMOn__wrapper_8cpp_source.html      |  207 +++
 doc/html/ISearch_8hpp_source.html             |  150 ++
 doc/html/PSO_8cpp_source.html                 |  257 +++
 doc/html/PSO_8hpp_source.html                 |  174 ++
 doc/html/annotated.html                       |  106 ++
 doc/html/bc_s.png                             |  Bin 0 -> 676 bytes
 doc/html/bdwn.png                             |  Bin 0 -> 147 bytes
 doc/html/classCSMOn-members.html              |  110 ++
 doc/html/classCSMOn.html                      |  258 +++
 doc/html/classCSMOn_1_1Param-members.html     |  105 ++
 doc/html/classCSMOn_1_1Param.html             |  120 ++
 .../classCSMOn_1_1ParamArrayType-members.html |  110 ++
 doc/html/classCSMOn_1_1ParamArrayType.html    |  134 ++
 doc/html/classCSMOn_1_1Param__coll__graph.map |    2 +
 doc/html/classCSMOn_1_1Param__coll__graph.md5 |    1 +
 doc/html/classCSMOn_1_1Param__coll__graph.png |  Bin 0 -> 3590 bytes
 .../classCSMOn_1_1Param__inherit__graph.map   |    2 +
 .../classCSMOn_1_1Param__inherit__graph.md5   |    1 +
 .../classCSMOn_1_1Param__inherit__graph.png   |  Bin 0 -> 3590 bytes
 doc/html/classCSMOn__coll__graph.map          |    3 +
 doc/html/classCSMOn__coll__graph.md5          |    1 +
 doc/html/classCSMOn__coll__graph.png          |  Bin 0 -> 2963 bytes
 doc/html/classISearch-members.html            |  108 ++
 doc/html/classISearch.html                    |  267 +++
 doc/html/classISearch__inherit__graph.map     |    3 +
 doc/html/classISearch__inherit__graph.md5     |    1 +
 doc/html/classISearch__inherit__graph.png     |  Bin 0 -> 2145 bytes
 doc/html/classPSO-members.html                |  111 ++
 doc/html/classPSO.html                        |  389 +++++
 doc/html/classPSO__coll__graph.map            |    3 +
 doc/html/classPSO__coll__graph.md5            |    1 +
 doc/html/classPSO__coll__graph.png            |  Bin 0 -> 2167 bytes
 doc/html/classPSO__inherit__graph.map         |    3 +
 doc/html/classPSO__inherit__graph.md5         |    1 +
 doc/html/classPSO__inherit__graph.png         |  Bin 0 -> 2167 bytes
 doc/html/classes.html                         |  109 ++
 doc/html/closed.png                           |  Bin 0 -> 132 bytes
 .../dir_7837fde3ab9c1fb2fc5be7b717af8d79.html |  106 ++
 ...r_7837fde3ab9c1fb2fc5be7b717af8d79_dep.map |    3 +
 ...r_7837fde3ab9c1fb2fc5be7b717af8d79_dep.md5 |    1 +
 ...r_7837fde3ab9c1fb2fc5be7b717af8d79_dep.png |  Bin 0 -> 1199 bytes
 .../dir_df511e5bd85cec96854b39d5e1c27aa8.html |  114 ++
 ...r_df511e5bd85cec96854b39d5e1c27aa8_dep.map |    3 +
 ...r_df511e5bd85cec96854b39d5e1c27aa8_dep.md5 |    1 +
 ...r_df511e5bd85cec96854b39d5e1c27aa8_dep.png |  Bin 0 -> 759 bytes
 doc/html/doxygen.css                          | 1440 +++++++++++++++++
 doc/html/doxygen.png                          |  Bin 0 -> 3779 bytes
 doc/html/dynsections.js                       |  104 ++
 doc/html/files.html                           |  107 ++
 doc/html/fitnessFunction_8py_source.html      |  144 ++
 doc/html/ftv2blank.png                        |  Bin 0 -> 86 bytes
 doc/html/ftv2doc.png                          |  Bin 0 -> 746 bytes
 doc/html/ftv2folderclosed.png                 |  Bin 0 -> 616 bytes
 doc/html/ftv2folderopen.png                   |  Bin 0 -> 597 bytes
 doc/html/ftv2lastnode.png                     |  Bin 0 -> 86 bytes
 doc/html/ftv2link.png                         |  Bin 0 -> 746 bytes
 doc/html/ftv2mlastnode.png                    |  Bin 0 -> 246 bytes
 doc/html/ftv2mnode.png                        |  Bin 0 -> 246 bytes
 doc/html/ftv2node.png                         |  Bin 0 -> 86 bytes
 doc/html/ftv2plastnode.png                    |  Bin 0 -> 229 bytes
 doc/html/ftv2pnode.png                        |  Bin 0 -> 229 bytes
 doc/html/ftv2splitbar.png                     |  Bin 0 -> 314 bytes
 doc/html/ftv2vertline.png                     |  Bin 0 -> 86 bytes
 doc/html/functions.html                       |  136 ++
 doc/html/functions_func.html                  |  136 ++
 doc/html/globals.html                         |  106 ++
 doc/html/globals_func.html                    |  103 ++
 doc/html/globals_type.html                    |  103 ++
 doc/html/graph_legend.html                    |  152 ++
 doc/html/graph_legend.md5                     |    1 +
 doc/html/graph_legend.png                     |  Bin 0 -> 19871 bytes
 doc/html/hierarchy.html                       |  108 ++
 doc/html/index.html                           |   92 ++
 doc/html/inherit_graph_0.map                  |    3 +
 doc/html/inherit_graph_0.md5                  |    1 +
 doc/html/inherit_graph_0.png                  |  Bin 0 -> 714 bytes
 doc/html/inherit_graph_1.map                  |    3 +
 doc/html/inherit_graph_1.md5                  |    1 +
 doc/html/inherit_graph_1.png                  |  Bin 0 -> 722 bytes
 doc/html/inherit_graph_2.map                  |    3 +
 doc/html/inherit_graph_2.md5                  |    1 +
 doc/html/inherit_graph_2.png                  |  Bin 0 -> 1146 bytes
 doc/html/inherit_graph_3.map                  |    4 +
 doc/html/inherit_graph_3.md5                  |    1 +
 doc/html/inherit_graph_3.png                  |  Bin 0 -> 1962 bytes
 doc/html/inherit_graph_4.map                  |    3 +
 doc/html/inherit_graph_4.md5                  |    1 +
 doc/html/inherit_graph_4.png                  |  Bin 0 -> 2279 bytes
 doc/html/inherit_graph_5.map                  |    3 +
 doc/html/inherit_graph_5.md5                  |    1 +
 doc/html/inherit_graph_5.png                  |  Bin 0 -> 1014 bytes
 doc/html/inherits.html                        |  117 ++
 doc/html/jquery.js                            |   39 +
 doc/html/nav_f.png                            |  Bin 0 -> 153 bytes
 doc/html/nav_g.png                            |  Bin 0 -> 95 bytes
 doc/html/nav_h.png                            |  Bin 0 -> 98 bytes
 doc/html/open.png                             |  Bin 0 -> 123 bytes
 doc/html/pso__example_8py_source.html         |  155 ++
 doc/html/search/all_0.html                    |   26 +
 doc/html/search/all_0.js                      |    5 +
 doc/html/search/all_1.html                    |   26 +
 doc/html/search/all_1.js                      |    6 +
 doc/html/search/all_2.html                    |   26 +
 doc/html/search/all_2.js                      |    7 +
 doc/html/search/all_3.html                    |   26 +
 doc/html/search/all_3.js                      |    4 +
 doc/html/search/all_4.html                    |   26 +
 doc/html/search/all_4.js                      |    4 +
 doc/html/search/all_5.html                    |   26 +
 doc/html/search/all_5.js                      |    5 +
 doc/html/search/all_6.html                    |   26 +
 doc/html/search/all_6.js                      |    4 +
 doc/html/search/all_7.html                    |   26 +
 doc/html/search/all_7.js                      |    5 +
 doc/html/search/all_8.html                    |   26 +
 doc/html/search/all_8.js                      |    4 +
 doc/html/search/classes_0.html                |   26 +
 doc/html/search/classes_0.js                  |    5 +
 doc/html/search/classes_1.html                |   26 +
 doc/html/search/classes_1.js                  |    4 +
 doc/html/search/classes_2.html                |   26 +
 doc/html/search/classes_2.js                  |    4 +
 doc/html/search/classes_3.html                |   26 +
 doc/html/search/classes_3.js                  |    4 +
 doc/html/search/close.png                     |  Bin 0 -> 273 bytes
 doc/html/search/files_0.html                  |   26 +
 doc/html/search/files_0.js                    |    4 +
 doc/html/search/functions_0.html              |   26 +
 doc/html/search/functions_0.js                |    4 +
 doc/html/search/functions_1.html              |   26 +
 doc/html/search/functions_1.js                |    7 +
 doc/html/search/functions_2.html              |   26 +
 doc/html/search/functions_2.js                |    4 +
 doc/html/search/functions_3.html              |   26 +
 doc/html/search/functions_3.js                |    4 +
 doc/html/search/functions_4.html              |   26 +
 doc/html/search/functions_4.js                |    4 +
 doc/html/search/functions_5.html              |   26 +
 doc/html/search/functions_5.js                |    5 +
 doc/html/search/mag_sel.png                   |  Bin 0 -> 563 bytes
 doc/html/search/nomatches.html                |   12 +
 doc/html/search/pages_0.html                  |   26 +
 doc/html/search/pages_0.js                    |    4 +
 doc/html/search/search.css                    |  271 ++++
 doc/html/search/search.js                     |  803 +++++++++
 doc/html/search/search_l.png                  |  Bin 0 -> 604 bytes
 doc/html/search/search_m.png                  |  Bin 0 -> 158 bytes
 doc/html/search/search_r.png                  |  Bin 0 -> 612 bytes
 doc/html/search/typedefs_0.html               |   26 +
 doc/html/search/typedefs_0.js                 |    4 +
 doc/html/struct__Param-members.html           |  107 ++
 doc/html/struct__Param.html                   |  131 ++
 doc/html/struct__point-members.html           |  104 ++
 doc/html/struct__point.html                   |  130 ++
 doc/html/sync_off.png                         |  Bin 0 -> 853 bytes
 doc/html/sync_on.png                          |  Bin 0 -> 845 bytes
 doc/html/tab_a.png                            |  Bin 0 -> 142 bytes
 doc/html/tab_b.png                            |  Bin 0 -> 169 bytes
 doc/html/tab_h.png                            |  Bin 0 -> 177 bytes
 doc/html/tab_s.png                            |  Bin 0 -> 184 bytes
 doc/html/tabs.css                             |   60 +
 python/CSMOn.py                               |  113 ++
 python/CSMOn_wrapper.cpp                      |  122 ++
 python/Makefile                               |   16 +
 python/fitnessFunction.py                     |   45 +
 python/pso_example.py                         |   55 +
 179 files changed, 10197 insertions(+)
 create mode 100644 cpp/CSMOn.cpp
 create mode 100644 cpp/CSMOn.hpp
 create mode 100644 cpp/ISearch.hpp
 create mode 100644 cpp/PSO.cpp
 create mode 100644 cpp/PSO.hpp
 create mode 100644 doc/CSMOn.pdf
 create mode 100644 doc/html/CSMOn_8cpp_source.html
 create mode 100644 doc/html/CSMOn_8hpp_source.html
 create mode 100644 doc/html/CSMOn_8py_source.html
 create mode 100644 doc/html/CSMOn__wrapper_8cpp.html
 create mode 100644 doc/html/CSMOn__wrapper_8cpp__incl.map
 create mode 100644 doc/html/CSMOn__wrapper_8cpp__incl.md5
 create mode 100644 doc/html/CSMOn__wrapper_8cpp__incl.png
 create mode 100644 doc/html/CSMOn__wrapper_8cpp_source.html
 create mode 100644 doc/html/ISearch_8hpp_source.html
 create mode 100644 doc/html/PSO_8cpp_source.html
 create mode 100644 doc/html/PSO_8hpp_source.html
 create mode 100644 doc/html/annotated.html
 create mode 100644 doc/html/bc_s.png
 create mode 100644 doc/html/bdwn.png
 create mode 100644 doc/html/classCSMOn-members.html
 create mode 100644 doc/html/classCSMOn.html
 create mode 100644 doc/html/classCSMOn_1_1Param-members.html
 create mode 100644 doc/html/classCSMOn_1_1Param.html
 create mode 100644 doc/html/classCSMOn_1_1ParamArrayType-members.html
 create mode 100644 doc/html/classCSMOn_1_1ParamArrayType.html
 create mode 100644 doc/html/classCSMOn_1_1Param__coll__graph.map
 create mode 100644 doc/html/classCSMOn_1_1Param__coll__graph.md5
 create mode 100644 doc/html/classCSMOn_1_1Param__coll__graph.png
 create mode 100644 doc/html/classCSMOn_1_1Param__inherit__graph.map
 create mode 100644 doc/html/classCSMOn_1_1Param__inherit__graph.md5
 create mode 100644 doc/html/classCSMOn_1_1Param__inherit__graph.png
 create mode 100644 doc/html/classCSMOn__coll__graph.map
 create mode 100644 doc/html/classCSMOn__coll__graph.md5
 create mode 100644 doc/html/classCSMOn__coll__graph.png
 create mode 100644 doc/html/classISearch-members.html
 create mode 100644 doc/html/classISearch.html
 create mode 100644 doc/html/classISearch__inherit__graph.map
 create mode 100644 doc/html/classISearch__inherit__graph.md5
 create mode 100644 doc/html/classISearch__inherit__graph.png
 create mode 100644 doc/html/classPSO-members.html
 create mode 100644 doc/html/classPSO.html
 create mode 100644 doc/html/classPSO__coll__graph.map
 create mode 100644 doc/html/classPSO__coll__graph.md5
 create mode 100644 doc/html/classPSO__coll__graph.png
 create mode 100644 doc/html/classPSO__inherit__graph.map
 create mode 100644 doc/html/classPSO__inherit__graph.md5
 create mode 100644 doc/html/classPSO__inherit__graph.png
 create mode 100644 doc/html/classes.html
 create mode 100644 doc/html/closed.png
 create mode 100644 doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79.html
 create mode 100644 doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.map
 create mode 100644 doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.md5
 create mode 100644 doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.png
 create mode 100644 doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8.html
 create mode 100644 doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.map
 create mode 100644 doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.md5
 create mode 100644 doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.png
 create mode 100644 doc/html/doxygen.css
 create mode 100644 doc/html/doxygen.png
 create mode 100644 doc/html/dynsections.js
 create mode 100644 doc/html/files.html
 create mode 100644 doc/html/fitnessFunction_8py_source.html
 create mode 100644 doc/html/ftv2blank.png
 create mode 100644 doc/html/ftv2doc.png
 create mode 100644 doc/html/ftv2folderclosed.png
 create mode 100644 doc/html/ftv2folderopen.png
 create mode 100644 doc/html/ftv2lastnode.png
 create mode 100644 doc/html/ftv2link.png
 create mode 100644 doc/html/ftv2mlastnode.png
 create mode 100644 doc/html/ftv2mnode.png
 create mode 100644 doc/html/ftv2node.png
 create mode 100644 doc/html/ftv2plastnode.png
 create mode 100644 doc/html/ftv2pnode.png
 create mode 100644 doc/html/ftv2splitbar.png
 create mode 100644 doc/html/ftv2vertline.png
 create mode 100644 doc/html/functions.html
 create mode 100644 doc/html/functions_func.html
 create mode 100644 doc/html/globals.html
 create mode 100644 doc/html/globals_func.html
 create mode 100644 doc/html/globals_type.html
 create mode 100644 doc/html/graph_legend.html
 create mode 100644 doc/html/graph_legend.md5
 create mode 100644 doc/html/graph_legend.png
 create mode 100644 doc/html/hierarchy.html
 create mode 100644 doc/html/index.html
 create mode 100644 doc/html/inherit_graph_0.map
 create mode 100644 doc/html/inherit_graph_0.md5
 create mode 100644 doc/html/inherit_graph_0.png
 create mode 100644 doc/html/inherit_graph_1.map
 create mode 100644 doc/html/inherit_graph_1.md5
 create mode 100644 doc/html/inherit_graph_1.png
 create mode 100644 doc/html/inherit_graph_2.map
 create mode 100644 doc/html/inherit_graph_2.md5
 create mode 100644 doc/html/inherit_graph_2.png
 create mode 100644 doc/html/inherit_graph_3.map
 create mode 100644 doc/html/inherit_graph_3.md5
 create mode 100644 doc/html/inherit_graph_3.png
 create mode 100644 doc/html/inherit_graph_4.map
 create mode 100644 doc/html/inherit_graph_4.md5
 create mode 100644 doc/html/inherit_graph_4.png
 create mode 100644 doc/html/inherit_graph_5.map
 create mode 100644 doc/html/inherit_graph_5.md5
 create mode 100644 doc/html/inherit_graph_5.png
 create mode 100644 doc/html/inherits.html
 create mode 100644 doc/html/jquery.js
 create mode 100644 doc/html/nav_f.png
 create mode 100644 doc/html/nav_g.png
 create mode 100644 doc/html/nav_h.png
 create mode 100644 doc/html/open.png
 create mode 100644 doc/html/pso__example_8py_source.html
 create mode 100644 doc/html/search/all_0.html
 create mode 100644 doc/html/search/all_0.js
 create mode 100644 doc/html/search/all_1.html
 create mode 100644 doc/html/search/all_1.js
 create mode 100644 doc/html/search/all_2.html
 create mode 100644 doc/html/search/all_2.js
 create mode 100644 doc/html/search/all_3.html
 create mode 100644 doc/html/search/all_3.js
 create mode 100644 doc/html/search/all_4.html
 create mode 100644 doc/html/search/all_4.js
 create mode 100644 doc/html/search/all_5.html
 create mode 100644 doc/html/search/all_5.js
 create mode 100644 doc/html/search/all_6.html
 create mode 100644 doc/html/search/all_6.js
 create mode 100644 doc/html/search/all_7.html
 create mode 100644 doc/html/search/all_7.js
 create mode 100644 doc/html/search/all_8.html
 create mode 100644 doc/html/search/all_8.js
 create mode 100644 doc/html/search/classes_0.html
 create mode 100644 doc/html/search/classes_0.js
 create mode 100644 doc/html/search/classes_1.html
 create mode 100644 doc/html/search/classes_1.js
 create mode 100644 doc/html/search/classes_2.html
 create mode 100644 doc/html/search/classes_2.js
 create mode 100644 doc/html/search/classes_3.html
 create mode 100644 doc/html/search/classes_3.js
 create mode 100644 doc/html/search/close.png
 create mode 100644 doc/html/search/files_0.html
 create mode 100644 doc/html/search/files_0.js
 create mode 100644 doc/html/search/functions_0.html
 create mode 100644 doc/html/search/functions_0.js
 create mode 100644 doc/html/search/functions_1.html
 create mode 100644 doc/html/search/functions_1.js
 create mode 100644 doc/html/search/functions_2.html
 create mode 100644 doc/html/search/functions_2.js
 create mode 100644 doc/html/search/functions_3.html
 create mode 100644 doc/html/search/functions_3.js
 create mode 100644 doc/html/search/functions_4.html
 create mode 100644 doc/html/search/functions_4.js
 create mode 100644 doc/html/search/functions_5.html
 create mode 100644 doc/html/search/functions_5.js
 create mode 100644 doc/html/search/mag_sel.png
 create mode 100644 doc/html/search/nomatches.html
 create mode 100644 doc/html/search/pages_0.html
 create mode 100644 doc/html/search/pages_0.js
 create mode 100644 doc/html/search/search.css
 create mode 100644 doc/html/search/search.js
 create mode 100644 doc/html/search/search_l.png
 create mode 100644 doc/html/search/search_m.png
 create mode 100644 doc/html/search/search_r.png
 create mode 100644 doc/html/search/typedefs_0.html
 create mode 100644 doc/html/search/typedefs_0.js
 create mode 100644 doc/html/struct__Param-members.html
 create mode 100644 doc/html/struct__Param.html
 create mode 100644 doc/html/struct__point-members.html
 create mode 100644 doc/html/struct__point.html
 create mode 100644 doc/html/sync_off.png
 create mode 100644 doc/html/sync_on.png
 create mode 100644 doc/html/tab_a.png
 create mode 100644 doc/html/tab_b.png
 create mode 100644 doc/html/tab_h.png
 create mode 100644 doc/html/tab_s.png
 create mode 100644 doc/html/tabs.css
 create mode 100644 python/CSMOn.py
 create mode 100644 python/CSMOn_wrapper.cpp
 create mode 100644 python/Makefile
 create mode 100644 python/fitnessFunction.py
 create mode 100644 python/pso_example.py

diff --git a/cpp/CSMOn.cpp b/cpp/CSMOn.cpp
new file mode 100644
index 0000000..9b188fb
--- /dev/null
+++ b/cpp/CSMOn.cpp
@@ -0,0 +1,200 @@
+/*
+ * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * Additionally, if used for any scientific purpose, the following reference
+ * must be cited:
+ * 
+ * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.
+ * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic
+ * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,
+ * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "CSMOn.hpp"
+
+/**
+ * @brief Class for CSMOn.
+ * 
+ * Always call this class directly (instead of the search method).
+ *
+ * @param search The instance for the search method.
+ * @param M The maximum number of fitness function evaluations allocated for this run.
+ * @param R The relaxation to be used for the limit calculations, in the interval ]0,1[. For decreasing relaxation, provide it in negative values.
+ * @param minEstimatedFit The lowest fitness value expected.
+ */
+CSMOn::CSMOn(ISearch *search, int M, double R, double minEstimatedFit) {
+	this->search = search;
+	this->M = M;
+	this->minEstimatedFit = minEstimatedFit;
+	if(R < 0){
+		autoRelaxation = true;
+		this->R = abs(R);
+	}
+	else{
+		autoRelaxation = false;
+		this->R = R;
+	}
+
+	search->startup();
+
+	s = -1;
+}
+
+CSMOn::~CSMOn() {}
+
+ISearch::~ISearch() {}
+
+/**
+ * @brief Call this method to execute the search.
+ */
+void CSMOn::run() {
+	int pT = -1, pS = -1;
+	double r = (autoRelaxation ? 0.99 : R);
+	getBest(1);
+	do{
+		r = (autoRelaxation ? max(r*r, R) : r);
+		if(pS == -1)
+			pT = adjustExp(r);
+		if(pT > 0)
+			pS = adjustLog(r, pT);
+	}while(getNEvals() < M && (r > R || pS == -1));
+}
+
+int CSMOn::adjustExp(double r) {
+	int sPrev = s;
+	getBest(2);
+	if(s-sPrev < 2) return -1;
+	int pB = -1;
+	double alpha1, alpha2;
+	while(getNEvals() < M){
+		if(decayE() < r && decayL() < r){
+			if(pB == -1){
+				pB = s-2;
+				alpha2 = alphaE(pB, s);
+			}
+			else{
+				alpha1 = alpha2;
+				alpha2 = alphaE(pB, s);
+				if(alpha2 < alpha1) return s;
+			}
+		}
+		else pB = -1;
+		getBest(1);
+	}
+	return -1;
+}
+
+int CSMOn::adjustLog(double r, int pT) {
+	int sPrev = s;
+	getBest(3);
+	if(s-sPrev < 3) return -1;
+	double alpha1 = alphaP(pT, s-1);
+	double alpha2 = alphaP(pT, s);
+	while(alpha2 >= alpha1 && getNEvals() < M){
+		if(decayE() >= r || decayL() >= r) return -1;
+		getBest(1);
+		alpha1 = alpha2;
+		alpha2 = alphaP(pT, s);
+	}
+	return s;
+}
+
+void CSMOn::getBest(int nBest) {
+	for(int i=0; i < nBest && search->getNEvals() < M; i++){
+		search->next(M);
+		gb.push_back(t_point(search->getNEvals(), search->getFitness()));
+		s++;
+	}
+}
+
+double CSMOn::decayE() {
+	return fabs(1 - (gb[s].y-minEstimatedFit) / (gb[s-1].y-minEstimatedFit));
+}
+
+double CSMOn::decayL() {
+	return fabs(1 - (gb[s].y-gb[s-1].y) / (gb[s-1].y-gb[s-2].y));
+}
+
+double CSMOn::alphaE(int p1, int p2) {
+	int i, n = p2 - p1 + 1;
+	double yAvg = 0, yAvgLn, ySumLn = 0, xSum = 0, xAvg, S1 = 0, S2 = 0, aux;
+	for(i=p1; i <= p2; i++){
+		xSum += gb[i].x;
+		yAvg += gb[i].y;
+		ySumLn += log(gb[i].y);
+	}
+	xAvg = xSum / n;
+	yAvg /= n;
+	yAvgLn = ySumLn / n;
+	for(i=p1; i <= p2; i++){
+		aux = (gb[i].x - xAvg);
+		S1 += aux * (gb[i].y - yAvgLn);
+		S2 += aux * aux;
+	}
+	return (ySumLn - (S1 / S2) * xSum) / n;
+}
+
+double CSMOn::alphaP(int p1, int p2) {
+	int i, n = p2 - p1 + 1;
+	double yAvgLog, ySumLog = 0, xAvgLog, xSumLog = 0, S1 = 0, S2 = 0, aux;
+	for(i=p1; i <= p2; i++){
+		xSumLog += log10(gb[i].x);
+		ySumLog += log10(gb[i].y);
+	}
+	xAvgLog = xSumLog / n;
+	yAvgLog = ySumLog / n;
+	for(i=p1; i <= p2; i++){
+		aux = (log10(gb[i].x) - xAvgLog);
+		S1 += aux * (log10(gb[i].y) - yAvgLog);
+		S2 += aux * aux;
+	}
+	return (ySumLog - (S1 / S2) * xSumLog) / n;
+}
+
+/**
+ * @brief Get the final fitness value.
+ *
+ *
+ * @return The final fitness value.
+ */
+double CSMOn::getFitness() {
+	return search->getFitness();
+}
+
+/**
+ * @brief Get the actual number of evaluations executed.
+ *
+ *
+ * @return The actual number of evaluations executed.
+ */
+int CSMOn::getNEvals() {
+	return search->getNEvals();
+}
+
+/**
+ * @brief Get the final optimized result (position).
+ *
+ *
+ * @return The final position.
+ */
+int CSMOn::getBestPos(double *x) {
+	return search->getBestPos(x);
+}
diff --git a/cpp/CSMOn.hpp b/cpp/CSMOn.hpp
new file mode 100644
index 0000000..d2ef6a7
--- /dev/null
+++ b/cpp/CSMOn.hpp
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * Additionally, if used for any scientific purpose, the following reference
+ * must be cited:
+ * 
+ * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.
+ * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic
+ * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,
+ * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+/**
+ * @mainpage Convergence Stabilization Modeling operating in Online Mode
+ * 
+ * This is an automated method to estimate the best moment to stop swarm
+ * iterations based on the analysis of the convergence behavior presented
+ * during optimization, aiming to provide an effective balance between
+ * saving fitness evaluations and keeping the optimization quality.
+ * The convergence analysis is performed through a sequence of linear
+ * regressions using exponential and log-like curves.
+ *
+ * @date 04/Mar/2017
+ * @author Peter Frank Perroni (pfperroni@gmail.com)
+ */
+
+#ifndef CSMON_HPP_
+#define CSMON_HPP_
+
+#include <vector>
+#include <cmath>
+#include "ISearch.hpp"
+
+using namespace std;
+
+/**
+ * @brief A point representing the number of evaluations and the respective fitness value.
+ * 
+ * @date 04/Mar/2017
+ * @author Peter Frank Perroni (pfperroni@gmail.com)
+ */
+typedef struct _point{
+	int x;
+	double y;
+	_point(int _x, int _y){
+		x = _x, y = _y;
+	}
+}t_point;
+
+/**
+ * @brief Convergence Stabilization Modeling operating in Online Mode ( formely called of C'MOn! ).
+ * 
+ * @date 04/Mar/2017
+ * @author Peter Frank Perroni (pfperroni@gmail.com)
+ */
+class CSMOn{
+	ISearch *search;
+	bool autoRelaxation;
+	int M, s;
+	double R, minEstimatedFit;
+	vector<t_point> gb;
+
+	double decayE();
+	double decayL();
+	double alphaE(int p1, int p2);
+	double alphaP(int p1, int p2);
+
+public:
+	CSMOn(ISearch *search, int M, double R, double minEstimatedFit);
+	virtual ~CSMOn();
+	void run();
+	void getBest(int nBest);
+	int adjustExp(double r);
+	int adjustLog(double r, int pT);
+	int getNEvals();
+	double getFitness();
+	int getBestPos(double *x);
+
+};
+
+#endif /* CSMON_HPP_ */
diff --git a/cpp/ISearch.hpp b/cpp/ISearch.hpp
new file mode 100644
index 0000000..efd7448
--- /dev/null
+++ b/cpp/ISearch.hpp
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * Additionally, if used for any scientific purpose, the following reference
+ * must be cited:
+ * 
+ * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.
+ * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic
+ * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,
+ * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef ISEARCH_HPP_
+#define ISEARCH_HPP_
+
+/**
+ * @brief The interface that the search methods must to implement.
+ * 
+ * @date 04/Mar/2017
+ * @author Peter Frank Perroni (pfperroni@gmail.com)
+ */
+class ISearch{
+public:
+	ISearch(){}
+	virtual ~ISearch()=0;
+	/**
+	 * @brief Startup the search method.
+	 */
+	virtual void startup()=0;
+	/**
+	 * @brief Obtain the next improvement.
+	 *
+	 * @param M The maximum number of evaluations allowed.
+	 */
+	virtual void next(int M)=0;
+	/**
+	 * @brief Get the best result obtained up to the moment.
+	 *
+	 * @param _x A pointer to store the positions of the best result.
+	 * @return An ID for the best result (implementation specific).
+	 */
+	virtual int getBestPos(double *_x)=0;
+	/**
+	 * @brief Get the number of fitness function evaluations performed up to the moment.
+	 *
+	 * @return The number of evaluations performed.
+	 */
+	virtual int getNEvals()=0;
+	/**
+	 * @brief Get the best fitness value found up to the moment.
+	 *
+	 *
+	 * @return The best fitness value found.
+	 */
+	virtual double getFitness()=0;
+};
+
+#endif /* ISEARCH_HPP_ */
diff --git a/cpp/PSO.cpp b/cpp/PSO.cpp
new file mode 100644
index 0000000..8c878d1
--- /dev/null
+++ b/cpp/PSO.cpp
@@ -0,0 +1,195 @@
+/*
+ * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * Additionally, if used for any scientific purpose, the following reference
+ * must be cited:
+ * 
+ * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.
+ * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic
+ * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,
+ * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "PSO.hpp"
+
+/**
+ * @brief A standard implementation of PSO.
+ *
+ * @param fitnessFunction The callback reference to the fitness function.
+ * @param s1 The lower bound of the search space.
+ * @param s2 The upper bound of the search space.
+ * @param p The number of particles.
+ * @param n The number of dimensions of the problem.
+ * @param w The acceleration coefficient. For linear decreasing weight, provide it in negative values
+ * @param c1 The cognitive knowledge rate.
+ * @param c2 The social knowledge rate.
+ */
+PSO::PSO(callback_t fitnessFunction, double s1, double s2, int p, int n, double w, double c1, double c2){
+	this->fitnessFunction = fitnessFunction;
+	this->s1 = s1;
+	this->s2 = s2;
+	this->p = p;
+	this->n = n;
+	this->c1 = c1;
+	this->c2 = c2;
+	if(w < 0){
+		decreasingW = true;
+		this->w = abs(w);
+	}
+	else{
+		decreasingW = false;
+		this->w = w;
+	}
+
+	Gb = new double[n];
+	pb = new double*[p];
+	pb_Fit = new double[p];
+	x = new double*[p];
+	fit = new double[p];
+	v = new double*[p];
+	for(int i=0; i < p; i++){
+		pb[i] = new double[n];
+		x[i] = new double[n];
+		v[i] = new double[n];
+	}
+	seed = 1;
+	nEvals = 0;
+	Gb_Fit = DBL_MAX;
+	gb = -1;
+}
+
+PSO::~PSO() {
+	for(int i=0; i < p; i++){
+		delete pb[i];
+		delete x[i];
+		delete v[i];
+	}
+	delete Gb;
+	delete pb;
+	delete pb_Fit;
+	delete x;
+	delete fit;
+	delete v;
+}
+
+/**
+ * @brief Startup the PSO.
+ */
+void PSO::startup(){
+	seed = getRandomSeed();
+	nEvals = 0;
+	Gb_Fit = DBL_MAX;
+	gb = -1;
+
+	for(int j, i=0; i < p; i++){
+		for(j=0; j < n; j++) v[i][j] = RAND_DOUBLE(seed, s1, s2)/10;
+		for(j=0; j < n; j++) x[i][j] = RAND_DOUBLE(seed, s1, s2);
+		COPY_ARR(x[i], pb[i], n);
+		pb_Fit[i] = fit[i] = fitnessFunction(x[i], n);
+		if(pb_Fit[i] < Gb_Fit){
+			COPY_ARR(pb[i], Gb, n);
+			Gb_Fit = pb_Fit[i];
+			gb = i;
+		}
+	}
+}
+
+/**
+ * @brief Obtain the next improvement.
+ *
+ * @param M The maximum number of evaluations allowed.
+ */
+void PSO::next(int M) {
+	bool found = false;
+	int i, j;
+	double currW = w - (w / M) * nEvals;
+	while(!found && nEvals < M){
+		for(i=0; i < p; i++){
+			for(j=0; j < n; j++){
+				v[i][j] = currW * v[i][j] + c1 * RAND_DOUBLE(seed, 0, 1) * (pb[i][j] - x[i][j])
+									  + c2 * RAND_DOUBLE(seed, 0, 1) * (Gb[j] - x[i][j]);
+				x[i][j] += v[i][j];
+				if(x[i][j] < s1)
+					x[i][j] = s1;
+				else if(x[i][j] > s2)
+					x[i][j] = s2;
+			}
+			fit[i] = fitnessFunction(x[i], n);
+			nEvals++;
+		}
+		for(i=0; i < p; i++){
+			if(fit[i] < pb_Fit[i]){
+				COPY_ARR(x[i], pb[i], n);
+				pb_Fit[i] = fit[i];
+				if(pb_Fit[i] < Gb_Fit){
+					found = true;
+					COPY_ARR(pb[i], Gb, n);
+					Gb_Fit = pb_Fit[i];
+					gb = i;
+				}
+			}
+		}
+		if(decreasingW) currW -= w / M;
+	}
+}
+
+/**
+ * @brief Get the best result obtained up to the moment (global best).
+ *
+ * @param _x A pointer to store the positions of the global best.
+ * @return The index of the particle that found the global best position.
+ */
+int PSO::getBestPos(double *_x){
+	COPY_ARR(pb[gb], _x, n);
+	return gb;
+}
+
+/**
+ * @brief Get the number of fitness function evaluations performed up to the moment.
+ *
+ * @return The number of evaluations performed.
+ */
+int PSO::getNEvals() {
+	return nEvals;
+}
+
+/**
+ * @brief Get the best fitness value found up to the moment.
+ *
+ *
+ * @return The best fitness value found.
+ */
+double PSO::getFitness() {
+	return Gb_Fit;
+}
+
+/**
+ * @brief Get a random number to be used as seed for the random number generator.
+ * 
+ * This implementation can be adapted/changed as necessary.
+ *
+ * @return A random seed.
+ */
+unsigned int PSO::getRandomSeed(){
+	struct timeval tv;
+	gettimeofday(&tv,NULL);
+	return tv.tv_usec;
+}
diff --git a/cpp/PSO.hpp b/cpp/PSO.hpp
new file mode 100644
index 0000000..f99e4cf
--- /dev/null
+++ b/cpp/PSO.hpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * Additionally, if used for any scientific purpose, the following reference
+ * must be cited:
+ * 
+ * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.
+ * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic
+ * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,
+ * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef PSO_HPP_
+#define PSO_HPP_
+
+#include <sys/time.h>
+#include <float.h>
+#include <stdlib.h>
+#include "ISearch.hpp"
+
+#define PI (3.141592653589793238462643383279)
+
+#define COPY_ARR(orig, dest, sz) for(int _i_=0; _i_ < sz; dest[_i_] = orig[_i_], _i_++);
+
+#define RAND_DOUBLE(seed, a, b) ((a==b)?a:(a+(((double)rand_r(&seed))/RAND_MAX)*(b-a)))
+
+typedef double (*callback_t)(double *buf, int n);
+
+/**
+ * @brief Particle Swarm Optimization.
+ * 
+ * @date 04/Mar/2017
+ * @author Peter Frank Perroni (pfperroni@gmail.com)
+ */
+class PSO : public ISearch{
+	unsigned int seed;
+	bool decreasingW;
+	int p, n, nEvals, gb;
+	double **x, *fit, s1, s2, w, c1, c2, *Gb, Gb_Fit, **pb, *pb_Fit, **v;
+
+	callback_t fitnessFunction;
+
+public:
+	PSO(callback_t fitnessFunction, double s1, double s2, int p, int n, double w, double c1, double c2) ;
+	~PSO();
+	void startup();
+	void next(int M);
+	int getBestPos(double *_x);
+	int getNEvals();
+	double getFitness();
+	unsigned int getRandomSeed();
+};
+
+#endif /* PSO_HPP_ */
diff --git a/doc/CSMOn.pdf b/doc/CSMOn.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..30c9604dcff5ccd83f87339441e7aee45c2e3087
GIT binary patch
literal 148232
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%0DLSKK@^lm6k+Pooh(-$2R
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

literal 0
HcmV?d00001

diff --git a/doc/html/CSMOn_8cpp_source.html b/doc/html/CSMOn_8cpp_source.html
new file mode 100644
index 0000000..968d517
--- /dev/null
+++ b/doc/html/CSMOn_8cpp_source.html
@@ -0,0 +1,281 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: cpp/CSMOn.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_df511e5bd85cec96854b39d5e1c27aa8.html">cpp</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CSMOn.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * in the Software without restriction, including without limitation the rights</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * The above copyright notice and this permission notice shall be included in</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * all copies or substantial portions of the Software.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * Additionally, if used for any scientific purpose, the following reference</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * must be cited:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * Algorithms. In Proceedings of GECCO &#39;17, Berlin, Germany, July 15-19, 2017,</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THE SOFTWARE.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;CSMOn.hpp&quot;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classCSMOn.html#a9b25325acfda9b579b3a272ed474480e">   43</a></span>&#160;<a class="code" href="classCSMOn.html#a9b25325acfda9b579b3a272ed474480e">CSMOn::CSMOn</a>(<a class="code" href="classISearch.html">ISearch</a> *<a class="code" href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7">search</a>, <span class="keywordtype">int</span> M, <span class="keywordtype">double</span> R, <span class="keywordtype">double</span> minEstimatedFit) {</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    this-&gt;search = search;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    this-&gt;M = M;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    this-&gt;minEstimatedFit = minEstimatedFit;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keywordflow">if</span>(R &lt; 0){</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        autoRelaxation = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        this-&gt;R = abs(R);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    }</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordflow">else</span>{</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        autoRelaxation = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        this-&gt;R = R;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    }</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    search-&gt;<a class="code" href="classISearch.html#a8eabe4ae3ed69ede2646a536f558f2fe">startup</a>();</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    s = -1;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;}</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;CSMOn::~CSMOn() {}</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;ISearch::~ISearch() {}</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22">   68</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22">CSMOn::run</a>() {</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordtype">int</span> pT = -1, pS = -1;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordtype">double</span> r = (autoRelaxation ? 0.99 : R);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    getBest(1);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="keywordflow">do</span>{</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        r = (autoRelaxation ? max(r*r, R) : r);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordflow">if</span>(pS == -1)</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;            pT = adjustExp(r);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keywordflow">if</span>(pT &gt; 0)</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;            pS = adjustLog(r, pT);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    }<span class="keywordflow">while</span>(<a class="code" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">getNEvals</a>() &lt; M &amp;&amp; (r &gt; R || pS == -1));</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;}</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="keywordtype">int</span> CSMOn::adjustExp(<span class="keywordtype">double</span> r) {</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordtype">int</span> sPrev = s;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    getBest(2);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">if</span>(s-sPrev &lt; 2) <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordtype">int</span> pB = -1;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keywordtype">double</span> alpha1, alpha2;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordflow">while</span>(<a class="code" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">getNEvals</a>() &lt; M){</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordflow">if</span>(decayE() &lt; r &amp;&amp; decayL() &lt; r){</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;            <span class="keywordflow">if</span>(pB == -1){</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                pB = s-2;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                alpha2 = alphaE(pB, s);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;            }</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;            <span class="keywordflow">else</span>{</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                alpha1 = alpha2;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                alpha2 = alphaE(pB, s);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                <span class="keywordflow">if</span>(alpha2 &lt; alpha1) <span class="keywordflow">return</span> s;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            }</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        }</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keywordflow">else</span> pB = -1;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        getBest(1);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    }</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;}</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="keywordtype">int</span> CSMOn::adjustLog(<span class="keywordtype">double</span> r, <span class="keywordtype">int</span> pT) {</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keywordtype">int</span> sPrev = s;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    getBest(3);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordflow">if</span>(s-sPrev &lt; 3) <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">double</span> alpha1 = alphaP(pT, s-1);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordtype">double</span> alpha2 = alphaP(pT, s);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordflow">while</span>(alpha2 &gt;= alpha1 &amp;&amp; <a class="code" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">getNEvals</a>() &lt; M){</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keywordflow">if</span>(decayE() &gt;= r || decayL() &gt;= r) <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        getBest(1);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        alpha1 = alpha2;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        alpha2 = alphaP(pT, s);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    }</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordflow">return</span> s;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;}</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="keywordtype">void</span> CSMOn::getBest(<span class="keywordtype">int</span> nBest) {</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i &lt; nBest &amp;&amp; search-&gt;<a class="code" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">getNEvals</a>() &lt; M; i++){</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        search-&gt;<a class="code" href="classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129">next</a>(M);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        gb.push_back(<a class="code" href="struct__point.html">t_point</a>(search-&gt;<a class="code" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">getNEvals</a>(), search-&gt;<a class="code" href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">getFitness</a>()));</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        s++;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    }</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;}</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="keywordtype">double</span> CSMOn::decayE() {</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="keywordflow">return</span> fabs(1 - (gb[s].y-minEstimatedFit) / (gb[s-1].y-minEstimatedFit));</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;}</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keywordtype">double</span> CSMOn::decayL() {</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordflow">return</span> fabs(1 - (gb[s].y-gb[s-1].y) / (gb[s-1].y-gb[s-2].y));</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;}</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="keywordtype">double</span> CSMOn::alphaE(<span class="keywordtype">int</span> p1, <span class="keywordtype">int</span> p2) {</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keywordtype">int</span> i, n = p2 - p1 + 1;</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keywordtype">double</span> yAvg = 0, yAvgLn, ySumLn = 0, xSum = 0, xAvg, S1 = 0, S2 = 0, aux;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordflow">for</span>(i=p1; i &lt;= p2; i++){</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        xSum += gb[i].x;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        yAvg += gb[i].y;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        ySumLn += log(gb[i].y);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    }</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    xAvg = xSum / n;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    yAvg /= n;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    yAvgLn = ySumLn / n;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordflow">for</span>(i=p1; i &lt;= p2; i++){</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        aux = (gb[i].x - xAvg);</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        S1 += aux * (gb[i].y - yAvgLn);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        S2 += aux * aux;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    }</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordflow">return</span> (ySumLn - (S1 / S2) * xSum) / n;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;}</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="keywordtype">double</span> CSMOn::alphaP(<span class="keywordtype">int</span> p1, <span class="keywordtype">int</span> p2) {</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordtype">int</span> i, n = p2 - p1 + 1;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="keywordtype">double</span> yAvgLog, ySumLog = 0, xAvgLog, xSumLog = 0, S1 = 0, S2 = 0, aux;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keywordflow">for</span>(i=p1; i &lt;= p2; i++){</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        xSumLog += log10(gb[i].x);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        ySumLog += log10(gb[i].y);</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    }</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    xAvgLog = xSumLog / n;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    yAvgLog = ySumLog / n;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordflow">for</span>(i=p1; i &lt;= p2; i++){</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        aux = (log10(gb[i].x) - xAvgLog);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        S1 += aux * (log10(gb[i].y) - yAvgLog);</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        S2 += aux * aux;</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    }</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordflow">return</span> (ySumLog - (S1 / S2) * xSumLog) / n;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;}</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5">  178</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5">CSMOn::getFitness</a>() {</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="keywordflow">return</span> search-&gt;<a class="code" href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">getFitness</a>();</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;}</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">  188</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">CSMOn::getNEvals</a>() {</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="keywordflow">return</span> search-&gt;<a class="code" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">getNEvals</a>();</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;}</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6">  198</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6">CSMOn::getBestPos</a>(<span class="keywordtype">double</span> *x) {</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordflow">return</span> search-&gt;<a class="code" href="classISearch.html#a9cee257ee19c02341da60440c5cddbd8">getBestPos</a>(x);</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;}</div>
+<div class="ttc" id="classCSMOn_html_a9b25325acfda9b579b3a272ed474480e"><div class="ttname"><a href="classCSMOn.html#a9b25325acfda9b579b3a272ed474480e">CSMOn::CSMOn</a></div><div class="ttdeci">CSMOn(ISearch *search, int M, double R, double minEstimatedFit)</div><div class="ttdoc">Class for CSMOn. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8cpp_source.html#l00043">CSMOn.cpp:43</a></div></div>
+<div class="ttc" id="struct__point_html"><div class="ttname"><a href="struct__point.html">_point</a></div><div class="ttdoc">A point representing the number of evaluations and the respective fitness value. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8hpp_source.html#l00060">CSMOn.hpp:60</a></div></div>
+<div class="ttc" id="classISearch_html_a8eabe4ae3ed69ede2646a536f558f2fe"><div class="ttname"><a href="classISearch.html#a8eabe4ae3ed69ede2646a536f558f2fe">ISearch::startup</a></div><div class="ttdeci">virtual void startup()=0</div><div class="ttdoc">Startup the search method. </div></div>
+<div class="ttc" id="classISearch_html"><div class="ttname"><a href="classISearch.html">ISearch</a></div><div class="ttdoc">The interface that the search methods must to implement. </div><div class="ttdef"><b>Definition:</b> <a href="ISearch_8hpp_source.html#l00040">ISearch.hpp:40</a></div></div>
+<div class="ttc" id="classCSMOn_html_ac5665384c5c4af241bbead4f98fdb3c6"><div class="ttname"><a href="classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6">CSMOn::getBestPos</a></div><div class="ttdeci">int getBestPos(double *x)</div><div class="ttdoc">Get the final optimized result (position). </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8cpp_source.html#l00198">CSMOn.cpp:198</a></div></div>
+<div class="ttc" id="classISearch_html_a3504ed6684ca6c82aa79c40b965d5237"><div class="ttname"><a href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">ISearch::getFitness</a></div><div class="ttdeci">virtual double getFitness()=0</div><div class="ttdoc">Get the best fitness value found up to the moment. </div></div>
+<div class="ttc" id="classCSMOn_html_a287ef04ef03f758a2a121057e9798c22"><div class="ttname"><a href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22">CSMOn::run</a></div><div class="ttdeci">void run()</div><div class="ttdoc">Call this method to execute the search. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8cpp_source.html#l00068">CSMOn.cpp:68</a></div></div>
+<div class="ttc" id="classISearch_html_ae3cc643bf0fbe9d9bac1d43642bbb129"><div class="ttname"><a href="classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129">ISearch::next</a></div><div class="ttdeci">virtual void next(int M)=0</div><div class="ttdoc">Obtain the next improvement. </div></div>
+<div class="ttc" id="classISearch_html_a56f6b069cc3dd7f8e3f2ff38bb681639"><div class="ttname"><a href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">ISearch::getNEvals</a></div><div class="ttdeci">virtual int getNEvals()=0</div><div class="ttdoc">Get the number of fitness function evaluations performed up to the moment. </div></div>
+<div class="ttc" id="classCSMOn_html_a4b1a2a4e99746adec24b3cdf683f31c5"><div class="ttname"><a href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5">CSMOn::getFitness</a></div><div class="ttdeci">double getFitness()</div><div class="ttdoc">Get the final fitness value. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8cpp_source.html#l00178">CSMOn.cpp:178</a></div></div>
+<div class="ttc" id="CSMOn__wrapper_8cpp_html_a918c532a1803542131c64811335fe6d7"><div class="ttname"><a href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7">search</a></div><div class="ttdeci">void search(char *method, Param *inParam, Param *outParam, double *outPos, callback_t fitnessFunction)</div><div class="ttdoc">The wrapper function for Python calls. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn__wrapper_8cpp_source.html#l00069">CSMOn_wrapper.cpp:69</a></div></div>
+<div class="ttc" id="classISearch_html_a9cee257ee19c02341da60440c5cddbd8"><div class="ttname"><a href="classISearch.html#a9cee257ee19c02341da60440c5cddbd8">ISearch::getBestPos</a></div><div class="ttdeci">virtual int getBestPos(double *_x)=0</div><div class="ttdoc">Get the best result obtained up to the moment. </div></div>
+<div class="ttc" id="classCSMOn_html_af423cda7d5f129d768ec5d4ef6f80593"><div class="ttname"><a href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">CSMOn::getNEvals</a></div><div class="ttdeci">int getNEvals()</div><div class="ttdoc">Get the actual number of evaluations executed. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8cpp_source.html#l00188">CSMOn.cpp:188</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/CSMOn_8hpp_source.html b/doc/html/CSMOn_8hpp_source.html
new file mode 100644
index 0000000..a93e89b
--- /dev/null
+++ b/doc/html/CSMOn_8hpp_source.html
@@ -0,0 +1,176 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: cpp/CSMOn.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_df511e5bd85cec96854b39d5e1c27aa8.html">cpp</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CSMOn.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * in the Software without restriction, including without limitation the rights</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * The above copyright notice and this permission notice shall be included in</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * all copies or substantial portions of the Software.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * Additionally, if used for any scientific purpose, the following reference</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * must be cited:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * Algorithms. In Proceedings of GECCO &#39;17, Berlin, Germany, July 15-19, 2017,</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THE SOFTWARE.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#ifndef CSMON_HPP_</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#define CSMON_HPP_</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#include &quot;ISearch.hpp&quot;</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keyword">using namespace </span>std;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct__point.html">   60</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__point.html">_point</a>{</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keywordtype">int</span> x;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordtype">double</span> y;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <a class="code" href="struct__point.html">_point</a>(<span class="keywordtype">int</span> _x, <span class="keywordtype">int</span> _y){</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        x = _x, y = _y;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    }</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;}<a class="code" href="struct__point.html">t_point</a>;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classCSMOn.html">   74</a></span>&#160;<span class="keyword">class </span><a class="code" href="classCSMOn.html">CSMOn</a>{</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <a class="code" href="classISearch.html">ISearch</a> *<a class="code" href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7">search</a>;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keywordtype">bool</span> autoRelaxation;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordtype">int</span> M, s;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordtype">double</span> R, minEstimatedFit;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    vector&lt;t_point&gt; gb;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keywordtype">double</span> decayE();</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordtype">double</span> decayL();</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keywordtype">double</span> alphaE(<span class="keywordtype">int</span> p1, <span class="keywordtype">int</span> p2);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordtype">double</span> alphaP(<span class="keywordtype">int</span> p1, <span class="keywordtype">int</span> p2);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <a class="code" href="classCSMOn.html">CSMOn</a>(<a class="code" href="classISearch.html">ISearch</a> *<a class="code" href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7">search</a>, <span class="keywordtype">int</span> M, <span class="keywordtype">double</span> R, <span class="keywordtype">double</span> minEstimatedFit);</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classCSMOn.html">CSMOn</a>();</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordtype">void</span> run();</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordtype">void</span> getBest(<span class="keywordtype">int</span> nBest);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keywordtype">int</span> adjustExp(<span class="keywordtype">double</span> r);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordtype">int</span> adjustLog(<span class="keywordtype">double</span> r, <span class="keywordtype">int</span> pT);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordtype">int</span> getNEvals();</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordtype">double</span> getFitness();</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordtype">int</span> getBestPos(<span class="keywordtype">double</span> *x);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;};</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CSMON_HPP_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="classCSMOn_html"><div class="ttname"><a href="classCSMOn.html">CSMOn</a></div><div class="ttdoc">Convergence Stabilization Modeling operating in Online Mode ( formely called of C&#39;MOn! )...</div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8hpp_source.html#l00074">CSMOn.hpp:74</a></div></div>
+<div class="ttc" id="struct__point_html"><div class="ttname"><a href="struct__point.html">_point</a></div><div class="ttdoc">A point representing the number of evaluations and the respective fitness value. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8hpp_source.html#l00060">CSMOn.hpp:60</a></div></div>
+<div class="ttc" id="classISearch_html"><div class="ttname"><a href="classISearch.html">ISearch</a></div><div class="ttdoc">The interface that the search methods must to implement. </div><div class="ttdef"><b>Definition:</b> <a href="ISearch_8hpp_source.html#l00040">ISearch.hpp:40</a></div></div>
+<div class="ttc" id="CSMOn__wrapper_8cpp_html_a918c532a1803542131c64811335fe6d7"><div class="ttname"><a href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7">search</a></div><div class="ttdeci">void search(char *method, Param *inParam, Param *outParam, double *outPos, callback_t fitnessFunction)</div><div class="ttdoc">The wrapper function for Python calls. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn__wrapper_8cpp_source.html#l00069">CSMOn_wrapper.cpp:69</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/CSMOn_8py_source.html b/doc/html/CSMOn_8py_source.html
new file mode 100644
index 0000000..1c36e65
--- /dev/null
+++ b/doc/html/CSMOn_8py_source.html
@@ -0,0 +1,214 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: python/CSMOn.py Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_7837fde3ab9c1fb2fc5be7b717af8d79.html">python</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CSMOn.py</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment"># Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"># Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"># of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"># in the Software without restriction, including without limitation the rights</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"># to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"># copies of the Software, and to permit persons to whom the Software is</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"># furnished to do so, subject to the following conditions:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"># The above copyright notice and this permission notice shall be included in</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"># all copies or substantial portions of the Software.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"># Additionally, if used for any scientific purpose, the following reference</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"># must be cited:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"># </span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"># Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"># 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"># Algorithms. In Proceedings of GECCO &#39;17, Berlin, Germany, July 15-19, 2017,</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"># pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"># THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"># IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"># FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"># AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"># LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"># OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"># THE SOFTWARE.</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"># CSMOn.cpp</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"># Created on: 02/Jul/2017</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"># Author: Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment"># This module contains all configuration required to call CSMOn C++ API.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">import</span> ctypes</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">from</span> ctypes <span class="keyword">import</span> *</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment"># Send and receive parameters through this object.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classCSMOn_1_1Param.html">   40</a></span>&#160;<span class="keyword">class </span><a class="code" href="classCSMOn_1_1Param.html">Param</a>(ctypes.Structure):</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    _fields_ = [(<span class="stringliteral">&#39;name&#39;</span>, ctypes.c_char_p),</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                (<span class="stringliteral">&#39;c&#39;</span>, ctypes.c_char),</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                (<span class="stringliteral">&#39;i&#39;</span>, ctypes.c_int),</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                (<span class="stringliteral">&#39;l&#39;</span>, ctypes.c_long),</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                (<span class="stringliteral">&#39;f&#39;</span>, ctypes.c_float),</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                (<span class="stringliteral">&#39;d&#39;</span>, ctypes.c_double)]</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment"># List of parameters.</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classCSMOn_1_1ParamArrayType.html">   49</a></span>&#160;<span class="keyword">class </span><a class="code" href="classCSMOn_1_1ParamArrayType.html">ParamArrayType</a>:</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keyword">def </span>from_param(self, param):</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        typename = type(param).__name__</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="keywordflow">if</span> hasattr(self, <span class="stringliteral">&#39;from_&#39;</span> + typename):</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;            <span class="keywordflow">return</span> getattr(self, <span class="stringliteral">&#39;from_&#39;</span> + typename)(param)</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keywordflow">elif</span> isinstance(param, ctypes.Array):</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;            <span class="keywordflow">return</span> param</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <span class="keywordflow">else</span>:</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;            <span class="keywordflow">raise</span> TypeError(<span class="stringliteral">&quot;Can&#39;t convert %s&quot;</span> % typename)</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="comment"># Cast from array.array objects</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keyword">def </span>from_array(self, param):</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <span class="keywordflow">if</span> param.typecode != <span class="stringliteral">&#39;d&#39;</span>:</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;            <span class="keywordflow">raise</span> TypeError(<span class="stringliteral">&#39;must be an array of param&#39;</span>)</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        ptr, _ = param.buffer_info()</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <span class="keywordflow">return</span> ctypes.cast(ptr, ctypes.POINTER(Param))</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="comment"># Cast from lists/tuples</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">def </span>from_list(self, param):</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        val = ((Param)*len(param))(*param)</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keywordflow">return</span> val</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    from_tuple = from_list</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment"># Cast from a numpy array</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keyword">def </span>from_ndarray(self, param):</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="keywordflow">return</span> param.ctypes.data_as(ctypes.POINTER(Param))</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;ParamArray = <a class="code" href="classCSMOn_1_1ParamArrayType.html">ParamArrayType</a>()</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="keywordflow">try</span>:</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keyword">from</span> fitnessFunction <span class="keyword">import</span> f</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    callback_t = CFUNCTYPE(c_double, POINTER(c_double), c_int)</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    fitFunc = callback_t(f)</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="comment"># Wrapper module must be called CSMOn_wrapper.so and must be present on current folder.</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    _search = ctypes.CDLL(<span class="stringliteral">&quot;./CSMOn_wrapper.so&quot;</span>).search</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keyword">def </span>search(method, inParam, outParam):</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        n = -1</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordflow">for</span> it <span class="keywordflow">in</span> inParam:</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;            if(it.name == <span class="stringliteral">&quot;n&quot;</span>):</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                n = it.i</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                <span class="keywordflow">break</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        if(n == -1):</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;            <span class="keywordflow">print</span> <span class="stringliteral">&quot;Dimension not provided!&quot;</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            <span class="keywordflow">return</span> NULL</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="comment"># Prepare the input parameters.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        pos = (c_double * n)()</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        _outParam = (Param * len(outParam))(*outParam)</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        _search.argtypes = (c_char_p, ParamArray, Param*len(_outParam), c_double * n, callback_t)</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="comment"># Call the C++ wrapper function.</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        _search(method, inParam, _outParam, pos, fitFunc)</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="comment"># Read the output parameters.</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keywordflow">for</span> i <span class="keywordflow">in</span> range(_outParam._length_):</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            outParam[i] = _outParam[i]</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="comment"># Return the optimized results.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <span class="keywordflow">return</span> list(pos)</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="keywordflow">except</span> NameError:</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordflow">print</span> <span class="stringliteral">&quot;Please define the function below:&quot;</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordflow">print</span> <span class="stringliteral">&quot;   def f(x, n)&quot;</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordflow">print</span> <span class="stringliteral">&quot;In a file called fitnessFunction.py, then reload this module.&quot;</span></div>
+<div class="ttc" id="classCSMOn_1_1ParamArrayType_html"><div class="ttname"><a href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a></div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8py_source.html#l00049">CSMOn.py:49</a></div></div>
+<div class="ttc" id="classCSMOn_1_1Param_html"><div class="ttname"><a href="classCSMOn_1_1Param.html">CSMOn.Param</a></div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8py_source.html#l00040">CSMOn.py:40</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:11:46 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/CSMOn__wrapper_8cpp.html b/doc/html/CSMOn__wrapper_8cpp.html
new file mode 100644
index 0000000..621d453
--- /dev/null
+++ b/doc/html/CSMOn__wrapper_8cpp.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: python/CSMOn_wrapper.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_7837fde3ab9c1fb2fc5be7b717af8d79.html">python</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">CSMOn_wrapper.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br />
+<code>#include &lt;string.h&gt;</code><br />
+<code>#include &lt;iostream&gt;</code><br />
+<code>#include &quot;PSO.hpp&quot;</code><br />
+<code>#include &quot;CSMOn.hpp&quot;</code><br />
+</div><div class="textblock"><div class="dynheader">
+Include dependency graph for CSMOn_wrapper.cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="CSMOn__wrapper_8cpp__incl.png" border="0" usemap="#python_2CSMOn__wrapper_8cpp" alt=""/></div>
+<map name="python_2CSMOn__wrapper_8cpp" id="python_2CSMOn__wrapper_8cpp">
+<area shape="rect" id="node5" href="PSO_8hpp_source.html" title="PSO.hpp" alt="" coords="277,80,351,107"/><area shape="rect" id="node10" href="CSMOn_8hpp_source.html" title="CSMOn.hpp" alt="" coords="423,80,517,107"/><area shape="rect" id="node9" href="ISearch_8hpp_source.html" title="ISearch.hpp" alt="" coords="371,155,463,181"/></map>
+</div>
+</div>
+<p><a href="CSMOn__wrapper_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__Param.html">_Param</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains a parameter received from / sent to the Python caller.  <a href="struct__Param.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a376fcabfd8429288efa3398dc2f3e8e1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a376fcabfd8429288efa3398dc2f3e8e1"></a>
+typedef struct <a class="el" href="struct__Param.html">_Param</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1">Param</a></td></tr>
+<tr class="memdesc:a376fcabfd8429288efa3398dc2f3e8e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains a parameter received from / sent to the Python caller. <br /></td></tr>
+<tr class="separator:a376fcabfd8429288efa3398dc2f3e8e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a918c532a1803542131c64811335fe6d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7">search</a> (char *method, <a class="el" href="CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1">Param</a> *inParam, <a class="el" href="CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1">Param</a> *outParam, double *outPos, callback_t fitnessFunction)</td></tr>
+<tr class="memdesc:a918c532a1803542131c64811335fe6d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The wrapper function for Python calls.  <a href="#a918c532a1803542131c64811335fe6d7">More...</a><br /></td></tr>
+<tr class="separator:a918c532a1803542131c64811335fe6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>This file contains the wrapper code for Python calls.</p>
+<dl class="section date"><dt>Date</dt><dd>02/Jul/2017 </dd></dl>
+<dl class="section author"><dt>Author</dt><dd>Peter Frank Perroni (<a href="#" onclick="location.href='mai'+'lto:'+'pfp'+'er'+'ron'+'i@'+'gma'+'il'+'.co'+'m'; return false;">pfper<span style="display: none;">.nosp@m.</span>roni<span style="display: none;">.nosp@m.</span>@gmai<span style="display: none;">.nosp@m.</span>l.co<span style="display: none;">.nosp@m.</span>m</a>) </dd></dl>
+
+<p>Definition in file <a class="el" href="CSMOn__wrapper_8cpp_source.html">CSMOn_wrapper.cpp</a>.</p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a918c532a1803542131c64811335fe6d7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void search </td>
+          <td>(</td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>method</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1">Param</a> *&#160;</td>
+          <td class="paramname"><em>inParam</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1">Param</a> *&#160;</td>
+          <td class="paramname"><em>outParam</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double *&#160;</td>
+          <td class="paramname"><em>outPos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">callback_t&#160;</td>
+          <td class="paramname"><em>fitnessFunction</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The wrapper function for Python calls. </p>
+<p>Call this method from Python using ctypes interface.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">method</td><td>A string speficying the search method to be used. </td></tr>
+    <tr><td class="paramname">inParam</td><td>The parameters required to call the search method specified. </td></tr>
+    <tr><td class="paramname">outParam</td><td>The parameters returned by the search method called. This will be returned back to the Python caller. </td></tr>
+    <tr><td class="paramname">outPos</td><td>The final result containing the optimized position. This will be returned back to the Python caller. </td></tr>
+    <tr><td class="paramname">fitnessFunction</td><td>The callback Python function containing the code for the fitness function evaluation. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="CSMOn__wrapper_8cpp_source.html#l00069">69</a> of file <a class="el" href="CSMOn__wrapper_8cpp_source.html">CSMOn_wrapper.cpp</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/CSMOn__wrapper_8cpp__incl.map b/doc/html/CSMOn__wrapper_8cpp__incl.map
new file mode 100644
index 0000000..77ecb7e
--- /dev/null
+++ b/doc/html/CSMOn__wrapper_8cpp__incl.map
@@ -0,0 +1,5 @@
+<map id="python/CSMOn_wrapper.cpp" name="python/CSMOn_wrapper.cpp">
+<area shape="rect" id="node5" href="$PSO_8hpp_source.html" title="PSO.hpp" alt="" coords="277,80,351,107"/>
+<area shape="rect" id="node10" href="$CSMOn_8hpp_source.html" title="CSMOn.hpp" alt="" coords="423,80,517,107"/>
+<area shape="rect" id="node9" href="$ISearch_8hpp_source.html" title="ISearch.hpp" alt="" coords="371,155,463,181"/>
+</map>
diff --git a/doc/html/CSMOn__wrapper_8cpp__incl.md5 b/doc/html/CSMOn__wrapper_8cpp__incl.md5
new file mode 100644
index 0000000..99e7c25
--- /dev/null
+++ b/doc/html/CSMOn__wrapper_8cpp__incl.md5
@@ -0,0 +1 @@
+86e49e61e2ac0d432867564786079fbd
\ No newline at end of file
diff --git a/doc/html/CSMOn__wrapper_8cpp__incl.png b/doc/html/CSMOn__wrapper_8cpp__incl.png
new file mode 100644
index 0000000000000000000000000000000000000000..8280658618e5a094e9dca26b98289bf3aa210064
GIT binary patch
literal 23948
zcmeAS@N?(olHy`uVBq!ia0y~yV5(+dVA##U#=yWJ>l^`+U`z6LcVYMsf(!O8pUl9Z
zz~JfP7*a9k&E4_{;mGgoAM%~t9dsJHVpCi<oQ^u^%2*oyri1HS)7~{rd)LUmz7-hg
zvQZ(aTr@DCE6JHvTOn*$!zE6|&%c}FKQ)PDCQd4_JOA14z1qw(bI!z^Jh`*@{Zj*;
z!wmvX9EvR`l>GH>3xb&f9~Y+dgIF$Yft%bp6k7z84r|<0ZV_<en3(t}huz`G`#(QF
zTa>&IxSc2v^mfYBsT=G6*O}zrn({V)L$Sql%A2bU&(F<0+%2x3kdbksOrs@ab@ugj
ziFbAsPI)8flx5=eEsMk1*?CRm=C-#694o`h-``8MW^v+3l)bwd-9C^Gkn;?@zJXlg
zlp?`<K_MwMEsd?by!^$hS79&fgoT72yn5B8>OGBtVbY{Y1s@(b?y31HWMB8kVRPEq
zgzRi?VPWBm)tfeLD){rG@W=1p%9fUrQBhGZuCJHR$<1B3VueOmczC$Dy8k?u_QRSb
zXH>nXJ-E2oz17aYtjw%W-oEd6zr3=UnV9cvv)0Z|PPcwJUQ5fJT7S>92snAT2Bh|f
z%)D_Uf=AM5NmQSxgha=^z17SNLBYX>rLRIXG&K{?&N3}1D|5TQuXbbI-zuBBKM`N%
z*;ap3P*P%geQj-Xdpo;~tgN7j2uphUbEn^Z-Q9<Oe}B(yJAK-;HgWwpkt#i7W8rV#
zzE%AGru*jY+rl3o5^vnPb?EqU_HJ?gHU|ZP%gfbU1e{LwO|lJ2Wnp3r3JzZVG@@VL
z-tGFjSVo3*>(;%vvQk(^MkXO4p&{+;ti&rT0wwHfENpCST;6l?@EqBadHKSw((H_^
ztVOlIzs)eumuqTj;(EK=d%B+MvNt>G|JzxWy@`0SQ&`>4Avjpry8PXd_xu0%9qW}o
zeB=nrxpU__y1NheN}C_~{E$<zWkS({lztIGSy^6VV`COpR#3c4nB_=(dv~|{&YhSy
zcXx|NZ_g9WojrAGD<d--C=@oQon>O+k+<7(;om%)N~Y-O=!nS3hgVhxFM59Y^5u=G
zr^R?AjaaT-yJk`GL7~D%uHnzSE4R1jCm(9zl(4BVI5*E$yXt<wy#0bTYj{*uRT&!g
z@3(jBkqCTJ>@&lFv9GUh(eYKQR_!Qx8MLrvOYQG(twK%=KOXnn7kqygYrvyi_3qx@
z>KB)n`!9T3Q&VG5_ot#@XX}4SO>OPuFE1{B`1tYX({#;~Z*FdW`0^#E!v0k^w&%yo
z*i;BO)CJ|HrnWwKkZ^G;7bj<9Z!hnmLx(;*ILPcX+l-f)jpsmzpmM>lFPRKW<F8+e
zV`i|M&!3*2&LeHcbGVJSdGluDA2oFwkLzpb>+`Q$w{FA6jR!9*blzC`Ic>@E<>6Lx
zP8^D<?kD9mFD~_-zM=ASTF$L4oc!{3M_yiDesQ_KJPRwUqP{*qgMf%gOB=7WlfOSd
zJD&^#L(GnXg%|4N>}ooc-TMw)yeO!rr?)62`}@1Q9zH%Tn>QQJnKS3ZkB`Z7EQ{T~
z>^pG4;m!U1^54FF1Lf#Tmo70p3BOtO?G2}beWH(_pI%uji>Rn*Ms{|$oVA68f{F@@
zvU^`kb2GDzjg5f3eEgGIH#fHvr%nl#K21wW0m<*J`YM#GY_o3Oyts|e{rvs;=iAr+
zdz!B4xjpZ$fRGRq0|z&Eb5|GFJlkqEhK`;dmj2_;%l+oM+@5b;&gVT{uXWuzy|DFh
zz1P-8AHI86);Rs#k%`LgAO8L>zqsva?DhD)W&i$E9yxaG(S?Q1H#R1-J2^Q$c=amk
z$&a<s+x5O!o||vaUteFJb8nC2?y|Rsrt8N)c=s+YV|LdOXAZ?BZ!~TytIo14R+BQ%
z<6&lI_L*xXYG-F>U}V&^XOE4Ovoj;Z_Wb*8OP8ijJjla(^TrK_(9qD5{@AD}sUJ0V
zHMO;d<?mula&8FdMsGW^#B;LCRRabIs}hYXSFT*xUtiB4pxSxx;K3L7_F6M^tjb?1
z8^0p^`nnGvJ{)*=clX70vDOvU)yZ#eY}`@&+;8FA9Wi=7zP_%pJNe~o9CnwzU9fOr
z;IzwXUCSTXR;$)dn^f}to~(Y{9)|hnkAHrC-Z1BeLCud3j4xlltoZgu(yH{8%Bmcu
z17BWVzPK`2JtHII!HbKFLAm$U)z#`=WyVHEF1N+XW9z@(>XkM(sQ*`!k)6Fb_4Kq2
z+qWNI?B3rc6CWA5^TP8Tb$_kY{O9#d(~Vx_+AS8bDaCVQ>TfL}e#Mpvn--_^Pgzm;
z_}HTVdAGJ`3JD7zd|H&4l*CkDU;pRFM`r)|cC9;iR<8WLGJL&U!y(Q{FE1_@CPpdK
zER`z1@Nn_Y&dx>0zrMcC&T!)N|NILTVPRrFYV59Dy~@b&>eZ_i!OQvVYJY`1*^z&L
z-_agP;|Y@|H@|t4^W)bqCI%iJ9#Bq{v8@s*D=Twl%V22TUDW;hP-t+l^W9ygf|8Pv
zZ_@jEdRq4Ft6MpLsma>t?QNSj8Qt4k-G1Rhz?WB7xvQ$GICy!FZcaacVX=F^(`|0;
z*`Gdr`tj?lwv4Q-VePMyJ9{cOpV-&Ed)@vjT|GTMWw)M&nKLENoH?_h;$za0W5>iS
z|DAvI_%Zj}&5@haTHQRtO%Pe~`ucd+|9_vJ77x7i?YMlsf`S4=`TKjWph#T0H1t(n
z*XmtYR|d1k=xq-;Bp@uT?A7H}b$_vY|A*i2_lsAp3tu1i;ll@wl786<_5QN+&$myS
zBqY&xu#Hz*KvXm|<NvW^#}?_mY`V2IyZy`=pO)6vhbJeiFItu2`0Uv;i^4}P69c#3
zym`~2_?gc_i_<}sIvs}}E~x(gj)RBi$aMX9P-$NB?vAAYJR8T1j1?<3X{z`r6&Dq4
zD0>^#BWEks&M$wgiIuzS&F&?yqi$ty&A#5Yd$;wUKYt!Pf8M@2e0|rhx7>37)4#sD
z>Kqd@=S5*kO3K8%J4hMm*7kh)MT-}I{Ps3_$BrEb4jp20__v^K&mNl{J9i$ubZOIx
z-<vjVs@s`gSy?$_=FG(N^K3hMdylsB%NKlkaWOuOv$?6MOC>INna{y)as3UMm(})E
zedP)a3@j)vKHSPJZczFvgyHA+_mNRikLK6^b1Wz@NJ>ur`0A=QsM!7c>#KH=Ok()E
zb91c|6A~DFea|Z01{L(0nwmd;zu*7y#YN?szrREo85w6-7OTCwzCQkCX2!14*KMb#
z>o3l|y=}tu>F&?Z%`N==%=g8M7Y^?3%Wr&t^6XjD`RC4YadI|t{w49TX=%$cW=~p|
zow<JIj2RD3OjPdZ?{^Og5s{IVEqr-tX;Sizy1%<t+`e(?l8~OB-j5FtneA$RG~C@?
zF22)$lhQ{4Ck{>PSs^p0oVasGrdv$csjO^U#;3#w^_>&8Z#M^J`rGCi7Z~2&+IqM{
zQ2E3C`u~56{(pXc{`kJy-v-IYcr-LL7UbXGw<uYp{rq!fQ`4;;rS8GO!k~yd*v!5$
z?W|NvYU;ww%gb);C`?|+HDmE&WxshgoyzWg3RYH9rLV3u&YUT!<~Jwe&Brrm&J_Io
zl*%J*w&uq5(9lp&`(ekfU59Solr%In%($^Z@z>Ya?Ah7b8X6jZKFLg3mVJHQgO3$2
zE-Ykj_|vGobLURiRaLAjSFTKac4p>{4T;PlAt453Zz8_DzRus**LP!kzI?-@^{Y2j
zZ&{LUmwHO%&F$^{mzVi6w;yg?xl;4Z+qWOz-rlZcm~(%htgLmJ%i5@|3EA1*Z{Fls
zSXd}nTT9>FUEaQTZ|%aj+K?jWv4Q>fTEUsdSywbv)YOvB&N5BCWoKn2RaRE^;qzzh
zLTPbv@gql%CO$niHB?khaPy^g*^%pZnjA|`OJn2b=kJj+T^00Ou|+`hndjXdOJXW)
z<dTw;3m+fj<&iS!cv}E!MSkMG((B!|B6PLbnl)>>YTurnZ62{TOO%aYE+)m5GsrG2
zEp6$(xT~StE`bt2XZMn$&K!!Hx^@+2H+(94ETp8pLVCJ@6PVyobXkVkN`|*urFx^C
zj~qGj;MUgcoc4oSZHz_5k{Vjm@?RQ79)HYORP^(|a*KdcwZ_fWjI&HKnf(3z-`v>P
z{5Bv$QGY$BsHpOaRoh(s&WYFjuUmZP{nLUcfxFA>Q&RUj`<**pBtQFbAj9<4U3>P(
zKdsYeDA=iW;fhShl`GW`K2O%#(jR~E!i(mptyW6r=7N@%fhW%OIpyUwMf8Q<ee&eV
zg4L@}mr1k;9MYOq)p}yd9vjAYcPe{>mp46p{hKW->y(7$Cha$Gsvc~=FEu4oJ}|Iz
zhS^!sjT`MZ)c?1bF>|YCxlH&vo8vu_c^#cML*IR8a)`OZf8+M<hfhyutckbhNj^Sp
zPe_!js>+gs=il@G`E&2Vy}bp0eoX9qcJ}q+{CMUsZ?hZb*?wKHCT8c-`y7fb8;(t$
zWUCZ>Z(r}xjmeBVs=l&by1e=0^Z9QR)2}nzR=;xeTlZ%Big~ub1x`<|UKqRkm_<nj
zla$Gd*o75Zv)?c>95%41GGTaqJ>K#DKDHZMvw2KRL$&wpkFWf$$G1Iyf7AYYi>BuL
z&I$<$87sKCySHuFVBoU5toPu<fN%@N77tFZZyjGwpL%rg^lQyKcjXmKzHpb6zD{^_
zBu>I`QTEQsTkhPkSrhS)wfsB#4BOrE({z3cfBGaUe>_C=<h+1_57lR8l?uh^v9t5{
zwQnr!_Im$0+{n0+gR85d|Gf5(U;7+=&XiwSzrIb*_De$EJ+W!i+E&Cy*L12YwoLF^
zoYL>H-aJ3)!7Hf_?eKZZ#>VW-?9akKR(;Ll)!Y7O>hkmRCmYo6lD4b!IkNwM-_Zuf
zw_38vp=#9(6XwimY~?<G;QV{uXXm#cIMn)A`%9$utINw(e*D<e)PH`pQ>eYLaBW1y
z7T4?RbXS>z>aP7RC*>yU&75fyv*W{lt+>f*rG|Ai{yj1`MXjtvUuUs0*zeyy!}z$Y
zm6cRM;mnq4x?5MN+*{@Mt>Mt!U3YhFJ#uev*@cT2S8Vz_J@nwJ`Sb5bySOi35NB)p
z<;~3aubVd*h-8-=E4EB9TA0%B(H_2j(ZgqAE!yGp6t%U*nc23i4iWYDP)OKN`MFfa
z;z75fvsL2lZGkI7y;q)kB<8+JT}0{^t8v;KhpH;GZ*Mjpm9L*t&)^xV74fzDhXGe*
zCDW>3f=(R2HEt?T(pFYx7uRp=SXFU$*45^@vHU$UnK7zU*W};7WSD)8)22qEwO88x
zz`1qqqAsyBEGFABczB;aHc55fj+&p6YW`*iUtMipxZuFQmdeOT8=J~cg4^@<Hf=AL
z*jMN4cz4&<3#-Fl|M&mL6S>k&$jO5j6lga3@otZgbSlK``@?hdW@z|P?H4aE`)}B8
z&u3|=$0t9pgHLu=$jQ2TwRb80CoX?BoTg{X&)nQ*QBhzs%VeeYwZ~JhFZcK4;NWQQ
zKd*gf_jkUUI=P-6sl!KH<d-e`_2Q!Q`XJ^+4#k!!9g}R8B<t2aGR=>Z-?r_pVb+!R
z7cK>@zm&Xl$B*R0ZL4404Cep+?dHO~yHTOL{x_}CzRBFs(NS?`#>2K9J3{{aelHOb
zA<^}BhN$A2Uq64hAHHqPGjSs4is0p9Rp0Y;UwvA8=I`_t0Vl47Dg7H>UtFv)$NoRd
zbiLMw^Wq(9c6s;rz0%H|In&0%YTn_c-ii_1-sqp1bv69W=cA$No7fp{-rRX($499?
zS?&od^6p*|0a>x%*^f{D*Dv0L#6*tZ;M$V+_q-n2Gb^@u7<hg2`1<>wt?+U`+lJ-O
zg<IN>A3U%?QO(!r;Ddv*3l}a_nwH$wemwD2NO;ZfX?=UEb1$xskKQQrJpJn2H=J|r
z|FfK)HrIW1*sX#xx&CKoUx&Z`sI6sfE#5C*->|>F?vuEj9J{Y?=!_XJK%w~TS+2It
zK~u$+D*;p9OnfCQAi!7toqb2?Yt<bwdTu>0l(uQbIfk#dJHE&@ec}514DI~>E{ok}
zCE3O~=BQRX{42^gPTTSD@^Tdm%gE#x7tURkb57-4UB}4y@Wbco<}Y7lK&j8;XTT=+
zBigE}%**}RAK%$|yrZMT{r0wAgTkbI9=SW5Qc|aqY|9Q_HCX0jcyv{0SU|`W@z;j+
z$I>>jGuX(<zrG$1D&Hgw7je&-vu5F<MJK#;riN~KB`zS)cj1EmicoJ(+v-;b4;>Qt
z`%7{`;^9}`PdF7_yaG14uaY}#z`@fa5c=`SlN}Ovd#YAdIDPzRpO9bAq#s|`I(f3G
zThEIq-Q#~HZ=akuVf%M)otO%?sHj&3W%C%Ao7>hL3l`-H`}^)*ZTFTfIVRa*{Lh}X
zZP;S6WR<*P%ag?^{ULLoJmHyRDa^y)@7~el(=c(O-m(7ot%}Z8j<K<OLiaQ=F&#3@
zzUFylZ8W!@-sB6rw)$<A{hdB((i=vHk`k`8vsRrOHmr}>S0k{@&otF~iPq%FhmS9I
z4{Tjkw`x__i>s?mb#!<V)2^}Y+EsdkZ?b^X4TqC*E9W$Y+T_2V9uP3$@P@>>tG9Nk
zs|Xm}*m_#}|G(GGjm)<bpPw@f2wuJGs)3f%q)E064?eTr*!x?o?Cq}Bhlh73e10}D
zbXQWxk{_Q`CBMJhtG)5n^|jHbv)*4)ZxNUlu*qFZO;b}g{k+|gna2ErqEk7NAB%0+
zW_Ikt!nu*28|wa?II^d5dExhW(QBeiC4!gD=%|gFx@p3e6n_l^1DWDyJDh!eCC{A`
zPDojDy38Z#@N;efp-+N#cIyQN1o}2?SRW7;=5T%8*~G-e4o2o%3k#D$2_!{KwR*`L
zuCR}J_jsJwMtN=6`j#>K^|}k!^AAMDtdBpQ@G2xcCH3QjH#UrScWq74oi^VyYZLnu
zeR1>hb=Gn=75!7S*Q%&Fifun~#N^K2-(uVI_aEC^oj-BbtoX0OdXKLyKc64+Rk`Ja
zkk_{p>uY~c<Kypdx2XN4XjkLW(%EVE=1tXsOP4sjyx!Dl&a;#45!K$4kaI_foxjg{
zZ&lWsW1o#Z{k}E)VfpvsBEy>ade++CQVG}B8D6*&l4`vsYw~pU1FOR?e)w3)DnI|a
z>#DlHzok9zTq<r62=bfqX5yo#PdOjF{>}FMy#2wmvl9b?gOA<Vc-Js%is5Qzxt2|v
zDk3%=5sr)VH_Q%;*NObJ+-2Qbt(S-jvZyFV#=?N_*fHH3e4V1LtLxrRm^CYO#jEtJ
zU(&Db3pf;)%+a{1+<Np#P5bI>1-+Pxt{pq%U)<eo`sPj5g8F*p&X>1-ebMB+ylm&A
z&(Bld+%y)OHq9-kJwz$f^IOB8i&wbCp4|U#QNNE>Oz#c9Uii1&rQSg?SN%Ob<&GWG
zO~_is@9nMJ`QxE8hvI&RlX55j2mOA(KVZjh`vZS}PrPs?<miiwcMYn(ywAAmHT&%c
zuAPO-JltY)+#Vk*efY>oP&X=LqioR1C7L&xxyoOcy}riv``b;&=;*m`H>e!ip8vAq
zgF?`hKYxEr)Livz=8PAhHqK0$n?4*9tERlUni9W%*@3gV9C2~}0`l{<CWhK9++)MI
zE$1gcJKv9_FE8?LY{_g1DOv6ry-EGcqod+y=2SAhe0lT6?(2NDzy2I6^AK{4_{z<}
zaeQs``VU`Tx@&0tTmLFOX;J*!V17X-4^EAnt22MpFy`GkvHlS&tLuWiyHOi9zHHl=
zyxTKps*a)}@8-0*4jw1eEi5As-?}y9?SxZ4QIIOJZSiBvn4O<wHm7|(dTD9Blb_$G
zcimH1JUw6TsJGw$s{Hr2?3({^J6@%yr5*S+r@v)_RQII4vmTwEo-)UxQ2zOOdq<~3
z|5sHovu&CDLUrjpo1YCYFW+6TM5X_5yZWNo-N$m;L-a1qdBa&*Wq0h-(&ra9CJVp0
zZ_mdobtTPOr86w%s=uQn-~RviCatP#5ikqbq<*@n_;bPMv>7Y9t}k%R^_g`=`fz*s
z#4gsy-{0?NR$u-<A?ug)x3`-opVD+pQM}3A@Zp2SnHhyloSZ9ve80cZz&!tSnMaVa
zr6seYqad`hJ#u{cqRh)xi;leSx4#wgx~QpTf>iq?+sH33gN5$gm4EQ(=W!1&uj2<A
zVU0~sSM!*xEHg133tsv8;SsyO_=BpzEcM@0r>5{TY}#DBvGB2}jI~(9$;rMOs=g+4
zuH*7nYHT=odV0K|fB;|p{{ou|0ZxV&S5`{u=<+5eE$T0OE9ISAt={6H;`J@%==sn+
zZoMXkiB9@G5*I^P?YawU_HM~MK5^EpR%Z5Ni^KJ8w>hs8iS+u`a&CToQ|jq+&i?+=
z?EHQ1pPzlb$>*81bV-VWK|sXU>fRqe<S$$cYhU>?|Ns73?$Q|<0ayD4f;6YR@!Z`n
zzyINtl?fG9c1}e_Z7aI2uMW>%Ia~Sdr>E%=du}l2-ZDAz@UZZbMXP^?rx@O3ZdkFx
z1=N85{9GmHt`(PaTS=0&%FGY%VrBB~*Rj_BFJNKc-|lc=L2){$nA2*VWSco<?%eLx
z;qxE=`Kivq)#dQ`SgB!N3_qkXc`5j)@Ts$B4|j>i6_nRE+}!-z^G%k7sN(9Aatt3T
zYSzTpiyrS|O*qn_S5UO6t*cAvcH+sN_xFuKWotu2!JU17r3wq}7c5=cXIEP%y!PSh
zg$oar&1exg>3(vaN#$=dvEzNL4_;jrKXK;F!3M^+OSW~Xe|hR{w9MbW@5Bj~oZDtx
z&h2Gs)=RWhPoJE3;q2_hAHUykzHseY!{*NwTQV<Ccsn5_s4&#t**P{MVoPglt77P1
z4n@_4DgKvI)1N>3^HUw<>I)b2Gw$uN%gNn+_|~uTmGL(p+}m3|!}hnzmMvEvJ~Hxr
z6!v-rmnkS2zIY)5>H{Pu#&68KYjES{*92>onbRgtRGxMH{kgg39ld}1eto@qVR5_M
znX|VKUAiQ&HQW3Ci&CeKh=5J%EAQ>;Y+aqrur8*uZ;j48pOB9&EKF>(&Et<ZGVj~4
z=~aiUbxumz%$2hyy<z+*T=xE6E%)xSyN5nJjNMTA*<<G3b(5Z5UcTgi{IR#83s=qW
z?6lL-xpnBq4%X1W94mKf+?=cu8EI2dX)7A~@z$2ij+2vp6H>1_rqwO2|39yDXYt*K
z@8$b?rQJ`|u&z*3t#)c`d<g0Ryn3ZoP$tLk>>Rtzc~u}%cjo6_*OC&hS673b&(HfA
zYR}E>ymHRwNdiHMQ{H$sU0<JE@TWpyT})-$oft;9o)=8kyXB0`PuF>zQ1_W%CljN`
z4r+HD@AJLMxAN55m`X-L!H<iMuUr|~(f5y!x%trdjlI&>g`3$*SG@bM>g@LXmou!d
z%ks<ZIeuzt*bJ+yQ{GO<TGJG|zny>agz4%UAzxqL+S+>MyO@BJm+MKnXd~mw9R&~T
zLv5Iw-Da4qG-u;~r!iIe&7;S`2cH%#SQ`4Lwnb0x-;E6qwRV-~gYp`v6@67E@#~9Q
zU*(S+sri32Oy<nY%i^b}^RJpV<HjKa9zK~5N2lrj2Q|rdm-XsxbecPNF1M>|rI*za
z9qsORb$`1@*VcxA_{Mkm`g+Y3(c8tUzGnUXe{#NJNr?%lofEWG<L2r-q`pICB@>Ul
z-rvwYZ{Ebrn3c!KaA)7!fDEA<YjosfWNiySJ_^=}$>?O|)>)b)+TV3+-(R(F@4h<b
zty^&A?Yq0tUDwu@uF}*hv#t0bw>f=&%N!YTP~Cogoi5kje{Z9$eto^&<=AYM^!V6A
z9oI<X+Fw&tqK>`2x3~Pk=g$c#S0vQbei@ivb?=v}GBV~BQZ$uNt-h)V?@P6{?V4e*
zP@Ikbor>`0$Lr(kS=;&VGaqo=U&mHZI+us9y}4h0f8wi<a2NOb<M;M%GflF+dg27j
zj9GblrP8*xxj%mEuU^)n;#^e3CZ=Q2ySw~;(!UyRotPW)F?#GwjLjDp&n^64$0EV@
z;lqr^dwaj$<lF8h6!!Pe-@^~z%C?<2!E$9~F!$c-?P8@ry&l`lYZ37JcB<$2<Hx6`
zKPmF%7ZUp>s_uX9_)>4h1c`(j8_osAAN_rEv3sC|S&n?m*^bjs4_y4{za?j7t84c;
zCx3tGc7Fesb$PPWl-JtT{<eB}cXx%zcYkj`Kfb;`W`pu|mfRCJb|*^6*h)2geZ77`
z_4hDPg$uG_|NnbVaq}2r^u$YFtx!@(kmOaEz`(k??%%)n6J|&6cy)bmwRV*BOo5jU
zC*vYjRF@vU_RT;^>CwkGH|>{(J+Aw6qGkDWVNkzn;llU}>td68q^}D*x0N*Q+Vv&;
zBiE^u4;TB-*X`)@bBnw8f0kf7^NEv%iK$lwZ*RNl5V|#O?W%$Y4f<yJ`}+3mSrofd
zhL62pZtbeTlkd+rHQ!JEmQ()WXHCuTX?;!gjUpmX3^D@T-`vkX9@ns><IS5Go4P-Y
z|NcD$b$gVQ9xYtCl1o^)7Suz!vnO}ywFl=;3o9r$s|(x8ws<IbeXCQ|(h^+kChOqj
zq$R-?u{}>h&G%Jo%I=1S0#L(fZM6Qv1q$s8om1C$ec!Aby)OBG-F+ob-sz_u*G6^i
zD9?{vx{qN=sLz>l3F-CPK{p>4SiHEfkn`W~d`0hxo_!xaRPab_V78HyXL7vw`N<m_
zxv((V$gaLWUEm%MpZ$Jw5C8Lx`|6k@A|%3AyxLy-+gHZwNxN?J8p9-)a6>mgk6xFP
zahWx>_Y-cJgny{0T-36x^7F49_4TX`e=HyS&8=eaKd;Wg-`@;v`W`wYaOxCSPMcoY
z!iDi4uE+1@3jM+r6fnX0_O{-Fr>Fi%-MpHdx>fr8yjra(Cr+F!+?aPaz-Ly<p`?^I
z!uOVo%lwh6sf(L<eP;~cl`B&O1vacXa`CQ9k;s}~tSl|cCSSO-t_C@spH~GMJ=$N#
zmT@Cs^Of2eGjfjo{?7TJprMi3I^lR<ppo%*4Mm}bNqZ;Fv8j|lJ#8-g;RPP8Y2V)&
zR(yM73~JZjiD6{pf5&0HTkgfBrIywQ!#3Z!V>4rRzH>-O(#F`SPM<!-_{_N>{rVd3
z>SHfdnm_+FSOQxMFgscxY~7xK7k^HiEd222r`46!%a0|cyt%#oJ)c?rzPLBGy-r+Q
zMK3Nd=k=R2BdT}e#8m+?SJy{wt}-w;Z&|uDapJ1@k`k_--s_!mr%#`D^z{|oU4Hw}
zp+ggT`yD#gEKGTy&T}~7>MC!GvNQW{Tz~rX>4g;&)n=KlX1Crgw_%G()1*l?rtT-#
zF|*ff%)Go+>2ChfhXocp>S`N({1(K_dh&#)<i&=lDQ`}mEWEgRxtxtn+9nyv-EsT-
z9RL5b_WC<f;mE^+f)5WYc;xP^lu}ZDGyzL5@#6ONjDP;zOL%$dbL%aZ>8BYFGbA4`
zJ8b`-XLaHCzd}JrHEwEasJHi97W+Lq*1I7{Sdx|1vZZa^>WO!G0s}h@jEkM}@-DvH
zUL&KSc~VimonKa#mq+pvXSW#dgq;U9Qw_`37&9>`{i|Q1$!=ZVcW_1Ev7Gj!tHReW
zGOYboSo7lp@25{i0vs%=|DsRt{~j#)@1J+(qIgL`IXQOw{o6l$t!-}SUwq*CbI0Id
zQTw_Sv1;#*JvQRIc9j<V_~5c7`}&O54$g_3Q{Hf@s;4L1*>RYI_ixan+6+*v{`u_x
zk=ZmQGHxD2{ok$J>*J4$?Y!<4H;>yczG0f~R)d^~bRMZIg8TnoYgp=`+C2Tb@R|Ab
zQcR4@uCA7QYIX`{WqIYas|xO`^=_YkUmDbK|Nd^TbKE?JPoM56*(-^NJW0s8!!&Q+
z<^vBeypr0aVm!IM`un}aXFld1DpdbgocVwIkO7aF&V;|7H#r4`y}mI#I6Xb(#tn<d
zudhEz%9qgZ`utz`v7Tsk&ZHw(O$D^Wt2&pR3J96P+&{hjSnunk7Z>~_Ojb1e^xNsJ
z-?Ak~LUOH3UY^{q@8(UbUyE#Wp5&paDY>Kex9Og}@rSN|=PfGw5fE}_Js<PWyF0DR
zZX|qpk*DMCwJNIMLp6{5zV$x0Pn|4GOt~Tfs=+=#`+8JHQqib&(%$RqlM|AQ1vE7!
zQ+KhiRmgwuYPu|2(aMT-*|OOar%vT&$hfyhu8r?)lVh{hg529~I_~N_-@LtB@by*k
zjvYRS=GSjax0dOgKKZbFKmg00z44Fs|35Tg$`m$+fWSZ(hXY0?Ss}kx_$kHCne*>(
zBlEtccf^8b?6DEo(&_>Y9RICWTJpxGyGQ58$H(k(dny<kA6z#N@V2&#XQ=)yed5%k
z={tHCEwT|2d9q;LIv!Qk$`va#7M10uYG`UY1a5r8Y`o;}o_$qcd84AV49xOc^X^J5
zEPVV&(@;q0(8LJ>anJr1?2IXSae;Abc6a(eTTkorZf>h8J~*&``qa6j`n%rkhYSo;
zrcS-Mx4L}e8*2>>j@sYfSo@E!p7d8!<Ap=yPSK*`=mn{#znwVwGf4IKR1rQtz8kwr
zwQnbGIClGYs-%!@W5yG+`T7n~vlxPx?^3e-sZ>;C*J*!3YQ?hc-jN|H(I-!yY;;g)
zSeSTL;#1v^0^5|-j{@@Yz4z-bJ5N^QUASr$hpK9;*4(qPx6ZF#sA!NCGT-a{^Q)`F
zPn<ltvZ<p>J@fg^3jz|hzxcNu7Wnz`G5fx{zgpY=y1TnKAAkJt&d%bb8@~k%-%Pdz
zEfP82FMpG-*|cUKLtr51qT@1r?5kFFUAPdycKFGo)6+Rh-reC_wdzwq;KcS#n`A;l
zo-9~2>Hm!b2ROO7O8&=%u73G8C~RuPtV@?JtvY8Bae00Gzvp|Z&6$7wx^>~&I`wOh
zuTJ@V%FOEg(bemAo2^;9cJ)(>OJ^=$p8QrILRJ6#(aX!TCr&=xzH3*}Lc!n9&&_S_
zJ*!qx-Tl~|S<}}yfBL3XX}$vP9EvVUSH5r_<6Nm1!VFqO!!a=tK6e9OarF9RTuO?H
zg-qXz|JqJJ>L#r>dcMhIQ^mZarRzLy7Fx`4`oB7Mw;3C+R13enUB@<0fB)l;j&@&M
z<jTEb#fk-`udhXHPUGFQc{BH0ZDnO<K0ZFs+}f3^R}*t`dVFV_HJ;b6tWu54xo#Tj
z<HK{TPqzEn+1bv%zP!hd9otdyF==7$sY}x=WcZ@C=f%EhSk}nQE|zI5npwVdp_%8Z
zSrL=>u2`XQWqtg%ndeMRO*f{T6e?^}Hm)m;dl@q=HgwMFPg{zE_Wb_-9<+kV(9m#4
z`FlAQCdM~!-ngtkKi67ZQBm>3r%#8TpPyg&<wao3z8XnBKE6e{mo8npur)i}rtXh~
zpPygFuP>U@bfepXm-`(&bcm_4GIjQj=^o3MEKw<Wb%k@)s#TyB4vXFU4XVCm^hg@B
z-Me>h(c4p(rZGHte7wKn<0IFF&x3-39=v}a|H3k>+(oLR)MTB5f<sVH(9CUX<M-Qb
z%ekp^t{~;u`g7WIPj6b?RUA66%&%+t(xt6zyq~TI<=xnz*e7GzbgWle+0;~2N=j-+
z$xETUdwV+1&9&~{c7Jm^|FK@__Py2LnHa9Ejb_)?)xEQ`n7yc|h=HNDw)V^W`|@sX
zZUv>KN3X05zWKAk<;}G<k<7-%#yfWG=$My%dz<c~M~^nt{w@QlWH@zY8pDA*cVy<x
zoA=_z#>FpoYKN~|;6LAPN8#f(i1R}{Q{TV3x;o?jK3h;`-IVG*$EH$<!DaIo?*ARn
zpFT~zy)E~`_3Q1sc3D+@ebw5|FVCcLYwowdzsr5*SO|W7eck=>vEGdpA0H{jnz7#9
zRSH_F09p)TmVYlsRKB}3)pq@%;_~O`WKD8!i5%~j*Duktl;QK6YsJdU%zR~SbhwGJ
z)nNnBnzGy5au+UK*toCu_oG`|vzL}-pSo44=f8XPi?19!JT7^8dNMLH3l=YC&dtpQ
zO}Cnx*T3AEeSKZ0mJqMBna-4&A`2NA>oOiTHnt0wE*+Yt8(r|}iRYG#i%eUyuOC|#
zx_Z@9n^5zI)0b_K_HlM*X6KX9m=ZF3)~rXDm;Yb8;K93heOFh9ci+<vSskWpVPSFL
z?%lmd9*bUI*LwZqr>CcXyxo3(!P>RGm7kv}s;e)*a-G9^&z?O7_5c1TonIfhna#al
zPSjS<JDTa!^Ddk6cQFgs-TD0deDaeM6I-`wXYba2`M$t&h3_P-qkmNF?B;#^{Q39K
zmqJUIFE{q`^6J^V*;rUw`m~H~)s%_Tr>9@Ke0gR^2gkApie>NaoXp71HWt^5Nk~dc
zn(_MjdgERx(<BCwo7b*goA&bhdil@){#L7*m`pJ=GD^C(E;c%chhc_eGn?Vcl`DIu
zPZwuy`1$Q^^h|r^!v;O`=gSMr%g3+#KBe8_{OS)M4>U4M#>dA$`}z5KYaIK59vRC?
zo}QkGeKMAZ7!oE;nlwY%z0Y9Ru3cx&&NiQU<cQ0$<Hy@CUcQ{%l_|F9?}=NLdfB^I
zpZV(H@1H(r&YT&7%5Dbp?d#K=oSkQ$n`>?CJzXy~C^%Ts)zvla)02~DuCI@mEH5u-
zW0*W)!T|%Hf0pvbX*`o>%{sMX#|{IA8G(!4KyE&>(7F9oE$^x7x>KhQA6|UqTd)wr
zna|J9&)l-bM9tK6YG+SRN*llYxstcHLbvp8-)_Em_3G0anwo}UVq#~u<=&prFK^!!
z=kMv6$Y9Xf*?Ck>Swo}a;>C-aAAcO(n*FeJ%a$!EhYlZ}`QSl<o4<d5<nFTEmFuTY
z-MZB@IX5@<+1u<%pSCGK{Oa%L_wVVp{aM~TlkcnD+gE$qB;!Iu<+nGIhYff>|NUL=
z78*MB=eM`BUs$iUdAn}O{=-KTSNj_AZ1t8bU3ckZTv3tH;spy1<lNsk7Zjo_OpKGK
zO*{7F=~L04LRYR|Pw$hrk9+YqFE7t^lC50-@e?Oc8tTXI6Ui-qc!<@_-+%oL2?hhu
zN>Yio#800-x%}4V_w;r;RUFsa@9gZ%Z7as4U}e^STzIa$va<5CD=ULr`>KC^c^Nd>
zHq!chYHs<|opL;f4RUX7NlZ#kcI~gNshQCyYi(p{X?bS0dH#$qUrN;U_4{|0zmHq^
znX7@5lT+|$_?^d}VwgRBzj6KZcXVugd3m}2#Pdg=e+C6q+TC5HJrgGiDyyrjXYJqr
z>r(B92aLh{>;4M$$H(l}duLTuQDIP3Rkd_qSlE}PQJX$(Tm0ln3LC@ZNt1$>z4gxa
z<~iJP>%g0vn`fq;o@U5%*x=o}cRj7Gt_!c9zWmPXmvxNHwp%KP19ndde6Dr3H+s3B
z?2n&66)h|zdZo?X=G)Z@2naCfZGW+Df6dRJ7ysB9GVbrIo%r_A<Hr-HPj3%f8`U}Q
z^5x6grM~CgdZid0HXfhq_SAB{Q|_%TnjcLc{tOHV5U~CJ?{Bq)q@?Jrb-A~<Ej^~1
z{e0(wOSfWE*B?LLFMn}EqVvU$U~X=1(2}&St}YIK{^Jdd%omn=i_6&8?Kx2gTIKcU
z{jI-$BE(!=TpAK340xF3`rCJxzXz>Ubol3Sd~^DFCI-;DoY2)_iY6u^r>E<;FJ7$N
z@Tbv?SIXqT=jZ3U?}8S^fYv_>^~Xo;&bzy7>x=!jw`2ytcps3te&Va(<$kg+Uc7kl
z_4RevxavPY410QeC(fK1xolg=gsodmZES518u)CC-SITH{ODg<J<hG3K~uH<_RgI;
zm9^1<!QbCsMO{7l)D+DPn>INW6%|d)oo${Umr`;Wv<50?`QpXQmX?+-uCAT)s{jA9
zEh#Pa?s2}h?7YVLN>Q!1{2qn%2D41F!=C)vU-^02l^rQ>ZNx*OcCUW(bw&LCx`i!j
zs;aC94<0;m>eQhXfr}qJc+fCmf`E)gfy0{lfl`J%%^Q=CE9vO?e35BC?D+rRUvA&r
z#O&<u(%08SCI8NtIFV6ZU7bh5V8M~(Dc9C1D=E4Bmz9&#`z7@6YW9*UUO5{H>#{c*
zMzLMHcUu<~7cX43D(cxbl`Ff;^Or1Ls%T&!U}tA1VO5ebG56Hvcc(rp&%C9w(rc>U
zHwzg)9bMgrPoK74xf1fB!bU?w1GL0(i*Hqx6+^<Y9?61&f&))aPZtyyZ=Y?RpY-+B
zRo8DT7c5|qmX<y<+nitCuI9k$>G~Uso_gK5b&H81CMM>?<Kz9O+Vn1-Dvs06`u65#
zK}pGxwb9!rOqs$GA0NLac6Znp_ho8xo;P`Amrva*cetJZ_@>m;A6{NoZ)s~wI?%v)
zV}HGUQBl!>#~&B0SkbX&jn10L&1??;O88Xf&zdE5tY4mAT3R}0f1PY#U?6BYvY38c
zk74q$j&0F<t4xK2gf6U)x4*NeQdm$>a7V>QrCp`3*<xd3&&;tDcKCVw>z|*W1tldr
zkN3+b|NQi{by<t%ThpMuW_foys=vPjtxg6R>E!JE@x1;2g!A)kZ|o>kZrHS4RngMY
zvPZ&@>D#w&KmLBdzi{o^*p%6uw(Y(YFk2<*d-3r+*LN>Je)y0OwKeOghL)BQsO->-
z-*?7<=kSwf&y4m~e^0w|<%&ex$^HIGx3}f?%$p|{ygE#GnR~ySPeDP!MrM;qlPAwC
ze0<FC>#M8DQf4_PbYgZ)IC<(+l0=(k(fY&d<)*hTx$Aw*Ak}`o>Rn^CkV`*Lo<5yi
z_V(7%Em>E)R>tl&Gfp_b@a)sm(>>Fsg{^$A{jxC916KbhNVIwS`lhP+&N^~sWpF!a
zfu?couM#z7<>tg0e;U0@Utdd|Ws-SF#-gA>(m0K0@!GX#4ScS~Gkfk$e;+=-@%(e+
z?Ca}NZ*9*%zhcD-gR`^E)2Hb~D(y0JdinC@nMJPM63WWTpd#JS#3aQm=f;7Qw6tjz
zdnU<ouV38V&3$=Ir17%4zrW7h*;zbu&6+hq@!HzE%vYs|X1ennHjuZkOL6OyIcbu0
zr6VvrJiYG!-|}atrfRot)AWwkx}o;&-rmy;3E$q|kAL%;C-`TXx@PXA#1*lpRus#$
zX~ul^^YA$E`uh5h$K~rgl($cb0Ij^dy)C!<@6#|*m5+Pkc9-$`&N6Xq=aY3gUs+k1
zc({$X;@g{<5q*)u=Qpbee*bA%{!S(*C#Ng6(&3hio7=P<T~3+nr(RtVxR~L|eB+=Q
zI$Ia7Qh8^_2`XRbZ7QE`tGW5Yg@7A3Zz`&&u*{q}lY@^B)H=#w3UK03bZP4-W#v`6
zDI+U8apug<h0g6thK7Qm^}$b0PEO3vKVO#7vcb>UdGV2Y?xlO(I(7uiRuOeQ8OIB%
zP<W-y5)QZV=CnI?9JzSyTHEH$#XIAbU1C=FPU>2e7X#XwAt32?Qckf&z^Q|0F~-IW
zFPQ}&KW|D~l69eStz5~x?&FU?u6k-ACMI^&ZvOP+u31^R8CiAg?ZN+k9{5pHdE&Hq
z?6p-^AAWL8n0|ikroXMNtp~4M*>dWedbd}WyQ$#(^$dF940`78uS<tBZS}qxqH^={
zg$oVaww3kHJ`)rjEiEM_m2|t_*LJ=A;?HOFDl02Nt<jv{@2{<ucI%gmO__UPiwWzI
zqgM}Y&tE0L!Jw<lx?=To{lc!!z{AV^rC!`HWYp4n>iuJ1U8wWkD$9Vtl@XhcJum+7
zC6oEe+S$Egy8E2t_I-ML`pT6MlSW<5HA~8lnAy$m_MdNZVNImglc%hrx7ZICe0VvT
zZOc~Ug{z{zef#k(H+IP~t%aGFLteZ{343uoC^BI86kpe{3koe0R)N+?8K*ZDK0D*=
z;;MS+LV&oi+LuEU6z48jw=U+{-zU$W9lZEa#>Q4Y`R%QRGpx4$32k@l6+3jZl8KG~
zUBtWZT(-5p1dE@~b4p9&D|;i+Tle=?SVg?cF9V)tPT`mj&wO=iYQ&s_gTG$S*J^V(
zknrO}?THg74%YwIZE0$XnR)N~-)gmQ@4p|NsQi7w>S%WF>Hj(%o2@#o8L2N3+0w+O
zxa5@qPjf><!HwIy7ZyL?dSmNrv8r!Z4xgP}fB1O1;hQ&AQ?xI7dwCr{G4Xfd(^JJV
zRwfIbI^#lLURr9oXRr9dOP4qvAK!i8;zyZHn^rB4p0nZojg1UHe(pWGueMCo?+Zi2
z>8A<D`J`Rkjy*mxu{yPG{<39SVQVB<?CsqpBwr>S>k;0t=~l0M{~|3J?v<7+Ho0@G
z+%kW4g`3+h3HyD2LiaQ&DLpbwY~rr4vAc6;*`W&o+YfyVbxmErAp3e8$kr`eO*iDv
zm+k4%l9QfTlb9Hvn7UQ^^Rt<c-|zn&e$uY|{kMbbVz)ndyjfyx^y?|V|0*iZ|8U-Z
z`o||H-Fc+0FrJ>y@3cAX>nas9rD7Y+o60RA9N<+h4ZD9cS5)tBX=;*b<9*Fzy<0Bh
z{yxv8-()2u`Z6!yxv(bEcE?WN#y-EdUT@d00?lN5cpSc8Ki|>8!Q$Cj<Ku@~{~mlA
zG=0_@Pw&%i|NmKESmGHw$I^K5sda|)^$*0?zipZ|OX%GE`LPS%MYJUryuHPpbE|~c
z(D1%tU5&nl1y4g;o7dDM9w}_9)h!b~35I<<H?Owk`+MP4OS-}*tj<=rwq_?sak2B8
z+v)6~p+~*m2g{t4oA5ui`b!3bS<Viw<j2o$?7c14E0r1c(vV|!+L;39f)CX{epono
zd++u7{`XfY4;$Z|&abcAlmGmfCwk96FHi2you&=7zkLgK%AA>ZSN!s_uZ@e8)^>O?
z1Z;BW(Bv)*``Gg76HCPIZ$^D`Uym<x{rmCz{lBZ<JS#3#t#*2U?`YyVnev*SlUjJC
z-4dRhSeInUw=!<IKYQ{?A^$nH*1~(MUUoi}kT#1sdUEpjhtIb!xnwVrA;7N52=d^h
z&fQ(=Q>IPpl{CI1AR)o1uAbc^cX#cnZ@eA$H<=ma`ulTl=RJDh82{&MIJ<>qWcVw$
zx<l)(uTKUIup8t?$?L@1dE^{_`0>Yv4LACh`M!Si<mAiHP3KpvaIvub+rBz{{$lUx
zX%U;#IChog2CDv63+kL?>*SGmHSnnRi`Umhd}b7|aB^l^l;s%p^sfHrz0zuu?ZN{G
zI6y<6GJG4Vx39gS<>XScX;X!SMS*zM^{~e2*JVze?k<1S#m;{(`N@gDH@2VWJKR>f
zZqr}8+FAA;k6&K?<0zvY#^ZE(nMucDwnZuZ0+ZJ7T2;YnTm4OPvbub0TN~G%JIfYT
ze*TqY=~oI`OF3&+uc-E(f`^BKedgsfg|1%n;-9AGri_W~dG~k@zrEdkaYN$QJIy;w
zR;sUyt8J|QK5bE5?N+VZ>k9;qAM3p?AgwKP#85y=>d{YgUlk$M>Xs`hS7VQAzj$<1
z;LqRhk`mI}k4#h+4%ofz$1a=I);EQBReiOTk+r?J!114m?$nufZ6W;n>(ytNzc&Hp
zvpai!sh#ulKHWBRrtq%P?9RWxkB9#J_ustZG24?TPYklBNiOsMzxd2#E8&%HleL6{
zgh3<C|NmJVnBHZQp56T8gQB3c8IQZiiKv{rR$gm5<qjL%*!WoO*_p!QH#Xia{Iz9o
zgs`nyWMt`)x3{|k*Uyt;<NYQ6`}_Sy2Z#OZRYOx!n5OC3_Me>WyUO$;Gec=<s)c3b
z<3~pYDysLd`Se#?<3!@CkYJmN4MK<8%Nr+Ot~W3)K6G{U`PF|STs{S)_D_&%I;%A=
zpsY+!Ovj@6_4W9Kv$GVhZc}25o@%?WDR|4Df7RY^?%6K8wTs>JW=i_=N9*^OIXXJZ
zg|9o4y!LkOw>Oh_)c?1AcQ;z;+Rsn-_WK{Ww$}V#y?}f1npkU=*j*;#w?A^MUa`r&
zW6kfKUEe=G-k!Dkk?5DV(N=5L@`F~x`pubf?A4|8tG$OGCcFv>zO(12`J~C06Vslx
zaEs5|BrB$w@b}m1AHPgl&z*Z5xp#lj;kJh-PM<!!%=h|{sySh6w-mm(z%s|$oZCiD
zzM1`f<KDf}`)WMJUKes&gDmBl)S?yV`0!z&g#A5MrbdRmyvqp*7dAxopD#;YzhI7x
z-M0My_eFH0w@01MG2gc3$NT*OKC{bY*!laWcbFA@OyYQUrm(&JIM0`NYxTc9=43C-
zxlth6*_k=R=%`5X^I4Y__-;Bfn{Z52weMe%dwreZvEJ963!SZ<eSJHp&d9r8*BiOn
zZ$WN!tc<mpWa;Z`tG-F7Xx<d&;@~*`=jU=o_2Wn9*=~Drak1!a#j76k?bQ!nDq>%=
z#wzLdw!oZrWuweXfi3OFAD@$D*U;7uIc>Okb8+F9753lW?BuPiv;<8(cM4Z`*S?Ze
zDx2~~Q0cA8+OF^m8<QC$Ha`<;<9pj9Yn>DET5j@@6n=)F;LRIyZdS(Z`oc3=eRjgv
zR|ie3Hc35w_AK$m1=|xRA3px|wKX7U(wvutj~>@A@RwJ=ar5heQ&YpPR=s)hgy+qz
zQtrIG#*Axg>||uw51sPb^zZG2BGAUu%&C(mHC|q>y1GmK$aC%uH9sroSc&#LJ^laC
zn#kJ7*iD{6lWi3ris<%AT|Kt1w#>jF<4Bo@>7h2>@Q1IYI;73ToZ|O0-hL=j_~=OO
znuv$3+1JGuIJdw0|4>YFW<&1nPwa(X-rbd29nRl4QP5XjrB&mmvdb)wB2j-0Q&Z`0
z-;RI$kSOx+Z}}P*m5536-Z1{u?mRQQoa_9&+Cz_yG8+`9#TV?{vTWs!A3ydSI@0OB
zF}dA$s{Z-#P>Ht2-d^KLlP(p0es+INXe~4I;g9F-!#_Op<@xt(HFMZnsh(rKuQv#B
zuN3h5#xarYkk-8R<H{~>USXo^7wE@N0@br1-EVG)l)Svu^L7G*hx;aW1}4Vl<l{^m
z>i&v;d9kp){=aN98*kQT*=c7wyMHrscfU0-&Th7?&bi6AJVf43Wl{Y8+!^NQWw^y6
zHi@-69C+~St9Zoze_WF$85vY=;(T`2Sp4=Yt0i86o7_8=Ols4LbL5wIOFT6tIpd0l
za9&=pYL=X3rsubodwV*M&aqS%l>I9ky{+fSg@vKp<Fb6GPgif)`jxTf_p~-?^M7t@
zqb7Y$Ua10F!}j``^oMV8E%)n^x9_&p?rsM;IsJUDhQ^7+gG^FK6j?!me96OGbiIQ9
zdi97cCzxx0{b^%nKjwKye8m>f@>>yIQ1!GinGv)&)+|>_bK~{+S#NF>3jhB8`_Zqj
ztyk?>16-dz<uu5+uz$kj$B#Zet(-79*?yxC-y@4U8v)&@EA7q9ypJX%fRZielC@px
zM+|t(a(DGHv)6zZB*y+)?ouQ8*GFoytz!NE@)`F3c|=5?Zm9kqQS#m|cuPn~LV|@`
zf7!8LUk@8(PU5`%aLVb~=7tgm3F=|%<$5%ORnnb4b#zpKa;u%)`U|_a+g)2D>67i?
zE$8)(Bk}V2&^_PY&OUH%UAs&8$Cgc-iw*1lW!~8%+2%Xj?ZCBd?6(!Cdd!+^tFXUo
zQ^iL1nwq%8V?4$dR(wk|qfTimD)Nen-A>54!=$G-`3B!|r)_zA8=c$V9lCy9@a(Ls
z$<}k6n3xWI1T~$$<?8T0nqV{Kjo_g+_%!{`&^-&CRrhy=2P7p)srlP=b#$=ESQ-hc
zsXdzibidIO+nd6lzSMwLgI-uQ)$H5b&CaXCZsoMAh_W!TJw7IT?DzN19i`b5Bd*U8
zRhR4U|M$1t!P{F_PR=-T?zt5fOpMI>>(y^;c_|eXyg5^#{mFu@g`6w(G&K*IW|<#8
z_DsR9*6Yx(uZIPNKKXB57Z@F>AMciYpkeNhf41D_c{)>mxcE<th?ahQPS#yRTl>JF
zB<q-%KaTsa*Pp$4lfSW1u%Jv%e`}{4gND|r<l}u8D?U81JvX=dOqqpi!A=>F#(#fB
zfBeq(-m#PQ(3KKy&;|{C{{v+erc$BbI0TI|*FO?{^7u2?=Crvk?R>ru9vN}YnssU8
zvej!szJXdz1!dn3Ut4Q_VRQOF5nU@Q6Ibs-&_czBhrcJjy!7Yf-qeGuLd74x{K--N
zUT^A)m6eYk*C!n3%b#QUSwJ^BEAgq9c0`24CfP7wm%BS!I+{)HcZW~<`}=*u>1qEB
zic-QsRqU#Fl9RWl_`mr1`TPv)?;`u^&mZ~r*6hXo`yFp5sCapKvFYe+JA5HP{CL0r
z#2tC(yH1^Yv@rkv+KlV#4Ef~eohY-|FCr(`&MUp{(YLqP4Gb?HpJnQNVVmw+q2OMP
zo61YHP6mnkYnYq!Yll_kn0;YjkktgA3-IvE%Y-$t)*`{nz0P?Y*fi;C3jYatjm?FR
zO)rY*&NlC#vSVfbjROWeYJN6d8#b)}@G-Kd>g$yod@H?J+1w5sd#2DQGqc0~f6n<b
zi&P;2fxfNT`j7AKj^L5M$EqC`;ppz({B}bYlh-$nm22j&u256^wPEvXMs99r4Q=fW
zvT;k7EK5uLRbmcWa#H>Mme<+or_QHX-W1+d{asf~&xTo5l@+u|cmMx;lip5<c=}4J
z;p%GrgO`h^o$(9bT<}ox$Irb7_f~rc?%q~%CrDA|$i~9Qp-YxOPq?Had}e;W;#OO^
zpr%Q-PFkxHMExTp1<T586LRl{Dv5`z?^v<IrANA)#nN)8MPbsckn-JET2lBKCQZ7u
zv0@|pyE~P<)xT$1yLw052#<(-d+g56XAxUg*x!EG;hU9Z_U}hB_n9+18<N|3Z$F&k
zou<aWZXM%|y|>x7W@#p0T=Y-Ec-d^1bC)%lK_PF`61u1Oxty|+Qe4Q<&EWM9Hn$&!
z&IC0)UxkF5<VJzx^w;eF*<PE}pS=7jae8{SV|+Y&_4iu~Q@wS!Ij=Iy%)I&Hem(mv
zla<}Z>1hq8r}qB-;#Kta7B^_Q<(JIrFE2k!-+nkHI_3`ln>#b@I~Ip(=dOuLZLRxz
zYm@A>H49gUb7*!W^%1w97oRrGZAW!Er;Sb8p;N0C`>0mUo7Zoc)?>V@JfBm4y=Bn+
z7gt?=25+%&h>PQU_Uv}n6%k!NJ~_}@$$hnDM)O}V9$4TgYfzA2ZDBRf+0Bg)WPLN+
z){UjFHSX+u+@R+BD&fu!<qaDxJIwQwZt(do3)tlD!3j#%|NfR=SbkpY#toSx-`~%?
zvH7^z`T75wMYY*Z`joGo;BX+}>Z<M;_Ww<uoqNkJKHW1QG&IFpC&<xv_O<5e*JX5~
zu7LJHG|s)7c;xu<O|sJ>=Gy)ixV~=hfpxLT3zsfES7vcF?eemT9=>OfZOb*k!MF6#
zm#@+fo}7I7;lqs1{QH*@5;w|zem2+1$w}(=!jmkoj;TIT-&Cg`SGZ|Y1<2Yxd*hQ{
zUklu@@#oyP6SSTl??2<z&&v~*@ci6G35yMLUs#5QE|n^_zr8tqzF~Tw^`%RjHq`Fs
z)zMvA-X$j2-~Z;#9i_?2`zwW;?f>6t)eQF8ShQ5s`{KsuZ*I1O7R`$5pKIM%$bIqi
z%a@iFKR)aYDee7d(~<nl$N0>=yZ*1(_iXHVcT<_=#QH~bt-d-udw*2h&&f$j&9~^_
z^YbSy%5sVp>T_joDSN9bV^{Nj`t6r5G9KLAT)#?D>Ewi|M?noxP+QEc?~T^h;4L|K
ztC-vQ?;kxkcd=nbfjYy_`ESqLmpeK;v&O|0E9l1?TdzIVQ|MMw!c|ivvtWq|fBb!O
zP{sQ3qkX~iK4l&rsZFv;J5$m=6?|Br|Ly(v)@94I{{5THRv031ce8tz*~7gRbFJ1M
z{P%ZLrT)Fu;TK<AOjeHD*Q56-D&j^sXx-M!mzF!KO7~q+uVMi8xc_9mi_x3j4BCg|
z?;zyl>MHp9I)C%--z7hO?{D7u)6AysPvhGSr_P>!t+{Dakzw*NPMxSHjc?w>tcfZW
z1oiJK3Tk?Nzc3`+Hj_Sb?B9WJZ~rHL%PGHcQ`RjhN$bheog931=gTUdE?c##!?l}D
zK_kQR%-P#XH#dF$@%el#2Uk~$waH57skT9nuPo7$J8S?Nxkx{6w=gfZ^v=G$9wrYC
z-Ttlm>`bBia=)_$PfoC`oVomU_@v3k7Zx6V6?Fa4lOoF-+j2#Y^}LMho#@$@fB(|P
zjEj*!e(u#Q?3y-X#(PlTGHm^}Lmh&#kzHFheE4AT=VSZi7aN<HK#Kqs6%|F#oqOy$
zb>FP6L<vxPetX_truND9idGCKP8MF=zh5vWMs1^Xf@*79-N9X@;RXNeRD68CY%F_w
zAwEpIxah}($&atSkZ1gV{odYo)552<4FCP|PPqy;DpZ6A2zW=YeY@>zSnP*Ozchlj
zuE}8izP0Rr)@{)(S)s4&?uFg8d;jg~t?!}X;VV0wT$gIE5WOC^AZ%^Nji*W-dz4PN
zIvF&oe6Ie#;G~p?Q$W$vntvBl($3BKb8e<_`%L5X1MA)x#(IYD=(-+N^eOevpJK_5
zD65?lC+=35thq7!dgY&g-|G+G*{T2NwEq3VS$%R0U*5fKD}2o4d+(JX2TR4@ujy-N
zX#aln_H7?CyIAt)XXYQb?~iqIIg+lSS-Bwk+~*eiKM&tmd~j&{@grr*w6NO-+y76S
zIC1%P&Crz<SFW5;6yXX8y?P;ao`u<xB~KXB&i>;0|Km9C2b=Y;Uoh&v5Bm3Rw^Mt+
ze?~^VjQzj)7FAzjZ7MD_Xa<)hJUx|SQ<3mPk*~MSz2b-8nfd=)<7{>*UAvhq<8^w+
z;>%U)YQa6Wfz@wk725^=wwUSD=x=AaF#Cb26z{21Sq7!A{BrKi>6@y(Jn{0fn|?pV
z^HZL1yZPrhEo7Li#=2ed!TqZRGVL#3OfP(PhHJ%Dn`J&XI}f+lGceSAyJ`97%Vk-H
zhN!iUIdAHATSU&YtCh{#T4!e>B`3w(-_jyn@%!!GiXR^)PFy?p`b6cM9Nf1Xv#-Bv
z=s55>_jO(EUM5x5Zx=J`qaGjQbxuo@G0U$LmXxflcskYh#?H??Q@p0$t8(vqvS7y!
zq5HMr9XocYw7-92$D8Qn<kYm*_@KeF73-!Yzq@nSqV|`SoNds|nwP(qdb8fx^V1}3
zozJnY*{K~J61{J4KTmpj>AFEph5Yh254LPe^|mT1^7<lGH&6XUidRc(?}2H$`L_(p
zr<rC<F#q;uXTq1TyqZ5IJo4}M$o}nnarZWF@v|Ps+P}&<x4-d=h}}DWu=)P0SG?zi
zU%irZTp5!1r{cEnt=|tEna%QSIFp}eD=k>FhD}p5{KK!;=gVfE+Y@zG+33^$g#jyg
z%06vrabj$0{`=vK@!vHwtWOJaShTc#JASBjJp)78+h1()bu*dGx93S%ZjzUhnzbR}
z;D3jeR~kA#oYof&(8!5y&(*m9^L#~5u!i2cLswQ>7rqW-Wq7c9eVvnYb5Q==bv2^v
zw?=Q*+K_+W{&oy2Bg4Gsh2L`Q{{8#@K6irg>w?m$3OYGU4*J!8f2Y*aYI)8?<l2R`
zvpG09Hy1oOkW}-(){x<^dW?yb-2D1F#`|^A3A1^aEULeySx;6GX5iy;HJ&y5>a|nT
z&UU&mrKBBGR5-w{H1XximVLk1UGUnuNzQzG-mZ2FHGjTi?((vSzr38Ebahp7#TSp(
zX;l|Lxu1SMKmNeIz5lo5w&k{zev{Z;{_v1K2mk%XRjb%ypS!MoR`};fDnr}xN3nZ;
zObqTnntlG()|G1hJuWR<vx9T0K5g4_;>5*()nC__bR2c^nJva8E^ZdNMRDfL$`z}#
zO)6ZcJZ>nzZ`-nKmz(qx9*fdf>5Id^vM@0+@O^&PdywCL&EW?JW1oL5U@%DO;5RaQ
zWKjJrqrgqh^?F7{%&sRjb8U6)_s9MCJpZ|p>QmblSEc6IRBk;hzuTpSSK3d(_V2FV
zqD<>InK8%K$=d%Dw)^wJV|Jm2%<+Z!_v1c%{d!=k_EHYMZ|)^uPIvUwFxpm^ZBOjW
zegEd>?1(KH^CKSz+t|c>c-;T`;^OwtM}3xFQcy|JeNyx{+(Xvti#(s{!8Kb`(w-$=
zTvV%eU9g*VhJ~R7JO96XUOTfCr<*4p>DbD)KBU`)siI=Xqs#t_Kis~*smQkG2m6}H
z$xKReQogs%6s&(I^GG~MZJrZ({?bzRk6*8w^IQ{eXpYc1uray*K({{M#;SWcEw;U<
zZ>*ndeg47U@B3NKf6hI&NI>w^>DLclzU&HKZg=44=Z_tolDD5)SDihZwI*_MQju(@
z3rin!)t482mc_>`-iGRJjOdUwo_Brs)~632HgO6!<;>9j9TI)JgWujJ>C37K)4Yy8
zzO!?-hu^-OrE|8PIQ5IwW_|tEz}eR~Y?!wERiyiR*OD)%J^cSO1g&(Royfz)*#73t
zZL?D|OaFWc=JcDJ^;_ZmenAr{xr-P7cQ0C`wffoFX%XrD8?Cjbvc2E`U)AofiLgt`
zmutNqDlYHu<w@99Ehsh4IBxg*jg6M}>)SC`g*hxZSY%w37!MtCnlR;y-lxyziI0zQ
zEU$}DRZ5z&?xJ{i>kQNEDZ&5msh7SEV}12nlz}6uu=?Y}4OL$aSNk0=dUl3)@5&Mv
zCB{2<cR%jdzjth3t>K4HMcbp|WDXji|8jU|abd;Rs}6e~$}lxDSX!RDeN$O!O>{Yv
z)54ebQ5EwR1ekzIqu6J6cfT>yOAeQkn$ppEvwzN<q{)*XWqGPN#q8gAapkkl>Y(!X
z*OK1cI9nB*!qLi<VPezN^h?34%qHzj#WwGwUW*@oe6#s=K=f@R+2bD{|L+Ws<J?fV
z?#<=J?q_!tEftwL(|qE*I@#~<ufMj6SljQqFreXpLwrignhigGw}xu*HZ@;=baC;r
z`1?JF5<fjjcyr^U*pf?fVt2PMR#tj*t5hy}dmZnBrIRmjU$3qgAD91lPUNwv+Dm5`
zKHje&#JM1Bd;LFwP8JTnZ^t`@PtW<rcYJ-{#+Bg`y8{D13J40$fB5Wdbz13{sDc-l
zk29aQKfmtX(c|(*_x}rJTo}O6mtAQa=5j<M=az}|>hS%I>GR*-e;TKvCs43rRn~#2
z+T|CP_p|@|vb>`#KeQ|~X`=u$dsX74B?&r_MvTGBdR*@Bo0pLl^m?7x?j0Tr!nXUQ
z21eiJn5W(&E1hw%=IN6=Zb^^$1vo4`RCN7$>pz{;*|FRDUUlu--p3YuemoNBk+~@@
zDQUj&Vg{(nPB^%l?`PbTZ(rWMWwYNO_u=#F)^~T0PB<yDOMUb1QekH$!B@S>Pb!^!
zdu6V#zkhU1<l<YEw{9<dx>>tA?AT|URjXFr>al<M>eOlZq?eZ#@2HPYE3iDi^-kNB
zf81N{+zVY@*&}Hzq3);i`iqU`RIe-7u9a2onl@p2c;k#2E({JCE98}w<{e(**;r6&
z`hI<AqXWarkYBHZd*`lSw~mji^^j8L_UFfXxsDu>aVz=4{o_IN^_)rU-p9A^+$rhl
z=^3Ck_3ipUEVE`+OqpV`XvGS_*4Cmc*SGt`oi3C~N@ibFUw`^+=Jbhyo$_@nTKDhg
zzE^WuesA^d<DxST9B|n4ZPwFQ!Rg!WpFZW^m~=E;LvP)&ZMnvVm7g~FdH>Fg{PbhR
znl;C#YP;^J{QN&4CZ@NkNo&fKD+^Y7{(Wu9dLe_O_?b<A=<2%LFMn@03l9(f^6Kj9
zuh)<7x;IC}EG#&<Ilk`a(Q7w1SZ8Lou2>&_;BG8ar%S`TyRH*FS_%pU4<2>p>2zTT
zzdmjMnIlPxckUb!=w$iu@#B#to{M!SEx)}zfAOkQhHM|q%(OmUi#}NK(Y5}^uU(7`
zr%roYPiYI#XzA}yUAE@L*|S@3zWFM|`LNfV$snyqor^2S{A!Qt<LX~uGWY!bc3aHz
zw!p*_!gqJ^wzyo9w=SF05)_%Uv3BPUo_2=^ZCzd2JBp6ht@G`0QCbnQ>RWh?)3l8G
zYwPPJSFZfeq_Fwr#)OWgef;t9{5y7@G)(jH?~%MLd_drX&B9$#jl0WJHT3fj%(ebn
z@nONWcS)aAEcy<&a0=h5Id4@Rw#@dS?;MMZ+axy{3#<DbSw6okXZCFKd?p4bC!J#M
z=^YOqKW?5dL7;od{hLZk^J;FdS)<ckcC3R#*{!D`L~H8}JD-hDL?wzNtoCJ<o?fd}
zw)mLUq{)*F^Y7VozdIcC)<5FL5<lPd#unATlXXKwLr<JPZ@#0)cG@ump2G$_kB>y8
z_a{oUB}yFY+;~pzFi5aRIC-vZ8(2{Nm{oObL}a97Qc}{bn)r~Al&L#USoApu22MQs
zJz3YK<;9DP9lN)md3OF$hV-o+_Hy;f|IOPsAKU)*{iM@RLC4cQIN1E~(W9mV2OM&4
zY&e*7dFPDT>(50^Pkb|T>1(6cZ%Px@{pK846S=wI_qW`N>gw0~-d|lU9=0|r_3#|a
zW!2x`DH<AHd~rFze^Kepl2U&u{;=h@x98k6irHHws;Q}|p{;#*U+wP+)26lk_)!s^
z-n&uo+P{c4-AAWD?oLZnJ9PN)!Ou2XSy?6btE;P%Ute2mc4lVsB|j;fgaZwJ-kTAo
zmOnbenR9a!>teUwrv85ZWBu~|`~Q7iZ&CSa$=c1wZg6DR>l_v<Or2}XUhwLQW=mV!
zqU!JOB#crx_++hE7$Wx7Sc>V#t%>&6n|}D}RnhC~VvTpoGK7SOA3l4Q7j#n5+59?Y
zh8LHY^EYhUzSE-b@V~#m1!ZJ-<mKga?(Pz8=aW4I3aW<>8%tkbdwDH%Wk^SVfBX9N
z`b&Z|A3c8T>t{1-=FHB928N2Ns-)A?bmt1_-p-UgehqZooNKq(!P~c`|Ni<4IyUN^
z*v*%hmw){8`8>!Wb#-;S`aG*Mvn+#U7$28zFSRj|;@y^izc2A{+d}t#xr(n>!zWIj
zd|A!bd3&C)u&`mti+~?LemuBae*frV_x_$|$8SE$_BcP!c4PJTyuFhz{P_5|@cB8}
zyXnElw{Nss)BE@5=jVnA2N+UPQ$fo;Bn%Q5YHDgW6g+gYsreD0uP@uVePQX=-#*^n
zhd(?#tT@$cW6jSZ6I0WfG0#q<ot@Qc|L<e}uJgXWz8}7PaRDubdYrmEY<2In_J!Y$
zM_6CmHD~|dZ_(QSew|C!l5;qIu3a|wy6&xW0?DCMr%o+-c!+iL_35XdURfJ$ert0&
ze`rX^g?+WZJye7y#^^2Y7T2FNeY*I{5G^GotC}AMtt~AA=Rd1$S5~^UzusQfs-&Z%
zgNvK{<;PVQei<`#b#*Dt^l_{H{!W#_r2JjXq?0LMj*7<%Fsxd)PEBc1?(J=XDJd#b
zr%nyb%hT(XGVQYa^+LIMKQF`HkH@4{CZE($Rdv;uEq?O!X<%I3yqmAfL)<Ut>-T+r
zet!AM$?Cy{g@#X`J-c*bqOzu<Vq=Ptq^F8dS8wmqPoIiFZev`qYSk*UOo>lh3RRSL
z6+C1L4GSyFkoI1hzv|t#zT@%#K8a8AS~_LcEU)kH?k@iFrR3B1@9GRyucdzdU*b7=
z#exM5n>KIOR8TmO^mWVP{r^2>Y^%21t-3VJ%q>b%Qu507{P<Vb)=IawwqE@9_V&sx
zTSD@slaFt=EUmb;CG*Q!^ZNl#PE4&WEdhCXdUtmeHpf-HRPE~SzI=N6&W~o>)|JhF
z`0!y>>YND^5{hQ3KE4|$n_E9=(xi+74U9)V+XxCSUAlDQ{{8#k{YhB!W?TOKye&37
zTkVhC+Ia2h8r$nL4$r$KAN*0l=zq<Pi)DL_Z%GRO?M}INbMvOYvTs@0*`7LLm-}R`
zSFBstS21sSTN~S@43i~ct5^EZw=4Pgr&392mR+q??%iEm@4oHmP*PT2xoz9Djx(>{
z#O|${+R-s<_H5p|Yx7K+nwnNDTI96-?aj^UFLyqlXZ+(fLqJ%Vn4n;0)IGno<)1S9
zl}o?PnmyZ7L*&)c>9b~eF)}h<xpKv2d){58oiTn=y={7NdscL}?wq@Kd8hKkTGMUI
zUgf>6;E^`#;ghjgu>J4BX7;nM-aLKw?A12QsxKP6ayB;->SPr6&AoV2St)4s)hTo5
z`bwMUEt#n7J}E$B$&n*2cZ<Mb93lPw;o<h+tgKafy?_4H>^(2rxqV}4@6<vEhlZ1>
z&o&)D7nht2I`8XZzx_WC7nl6KU&YqO?Ty-gC*tNzt^RArXRj<f6A*JY)&Fh3<=4w|
zJ}0{0{(3GW-KX^1jocXP=PzG&a*OMMj`aHb>no^UDR_BFm4k(eqt)rmJX`6ND_5>q
zx9-@^;^&|h;APt<pMDy!GUUUTFDBOVwpCvk7&?w7HP7Gb<?a3O`E&NZ#|H{!4jnoa
z5EPVT5?fzi&#>VJ_oKJ2si~?aQoL<^va5dUDJU>Jefo5Qhl+-V#(^s<gAJ>`WXM<)
zEI9nqI#|Z{>fLMa?(OY<KCjyE{q74F0ycjWmXKKSyFMU5Kub%jXWeU`kETmDZWQ$N
z^kit59#_Tr`r2COyga>YYa*McYKOnNW?WV?JGi~MsfmH1{N0_4-L(Y;21-$TU$0mG
zXtp))wUM5_zIpac<)YHkqi1Fs7ykKCXkupe=*r6As?E9*+SbLVoKJ^XFI%dc?w;yr
zbH-BM&U1I($+BaX(R%8O0yGYMw&|0#Zo73WN+)iQgmKy#humCUhJ<r-EPuROy?(-+
zIXxSbk1vYfU-vez{Mi{vpSf07m41Hx_RTFZQL%%=rDfMHtCaL~>Dc>H!IN(=$H&KW
zv^w3{R~!93wy@Cf*SELatxk<Qi=Qjm*~x{kk30JA?r!Tj`;3on+-voJhhsC_!(U%t
zSKZINKl9GKLx-I1{^#c6GALN^v0TSGxQ16z>Ce0J{h%XVOYRrSv}*=0dvR|!w}kz^
zvnvnZ5?;7}zrB~Ycj^8Ae?FhTu_bfzy<M_%rH;?Imb%7v=C<u;0$p8QAO86G*rM{2
zid(<j+UuEyVP(&zv`<@E=Ck@MD}(#xi4`+Gsl45#dRy|^&CSI!#}#dCWHdE3C!9>l
z$jfVs&}mz}TALx^&W^%>)mK5QF~xKu60VhHW@gT?EKZwUd-Cb0<>%hNxw&~`)z_>$
zJB!(O?%X-Us#L4&?JZV@8@tQ(U%h@kze>K(Lq{z6-kwTOo#^G|HDUVn_I~?+5}%)+
zcMlF0o;7>6;zW-H0U8?;53?~iI6F7z{XTyB*v-c`;^wmdlkH#XJslKwnVFe8>i^rF
zn`7Dh_4W1HTjz^vhb>sKf@8XV{IOZ4*&8x0Dlwdsk9WRv_wL4mhfbgsvM*o0+)?}6
zY~TNX)klsVRn*e*+CFdN<J)tr)@)5U$h0PQw^(ImC1}M#_4~cczYBC|%IePke!o6`
zeb3^>i_b<qTXE>{;lS|lc3x>S1v9g-{Fxg!885fl0?vMsHokvrV%%?+cE7&BoA_*H
zX~`M6z|%h_EOc(4<f622!2$&@Z|}>|`$}F06%`gL&h)wVuI%jDvnI8_O7?yY(Gu;I
zwVrn8?%mE4A7<=5ew=T{FP+IJHPqDFY;0{$o<7|@O()W+x3^c;@3>5#Nm~DkRGnK*
ztlTF~pYHzi=g*77{PrrXPL3|R{8C@u-JSjG`+NW0<?olRSfMe=YiaJOwiTZrd!)oC
zr*-sP|9S0W!0M}8YJZn;ad0S@o10htd^%mz+WPhy!)i}YPm_!b3X{B+Zb>@Im6esH
zq;$L|KfUK>@an5mCQNWxxNzZ<M~|GE*?1R)t`2+oN@L>7$G0P7^J--@rh0XCcPrP|
z*MIu(VZn+O8mm^XHlDTqxc%&Cvs<<A?(Uw>#wX)(@7}#FIX8`hG(^;<&pa)6{7t5A
z<ffK8ckkY|QAk|##%C&|PER}cBPsdK%D<Jfe%<_4oWAY#GXvAK{@<p7$GldpS~X$*
z{Qgd1^|Gj0+1J;(W@c&%2@6~6`noUJ8!Ij(^k~A%+mqL<(E%+F4qACd@$&ZaY5)G7
zJb4my{Axt;y+tcla5OeHvOP}Bnz?h0VE(m#7Jk3J9dh~qXvPV)pNUqTK`W2!t^U5D
z{(qf}WzmsqH^HskV|*J8tNC=))!Fs;d|*mSPPYE)rFht&NBQ;5&Fc3mpU>sfPnJkO
zy6%nT22No$i5jPgi4x1SCwncuu{qtpeY#=K=A`g%pf+?{;v9+BZ$P^Scn(__Ub~qL
z7A#C!v-vovVU60_US7D?=l8qaYu4!8PCMcmQ8dY??{PqA=+)FyrzX8mePY4)^XJbK
z=g)7yVfSXP>SJvYF5P|nZu8BaO*?dJ{yE>>tGC!6dvxO7g2Yst^NW`)J9h16fz-Qq
z?+OYFH+tOSYCW{;z1|i>eSLinmT5b0{QvOKc}0j;_ma07I+F2AgF4sm|0gBYdrax2
zaqiDwzmop^_$cN*f2;l6<=R{AlQv511s$jG72$)p<2Pm?bqPQ{hr<SbJ*6;T&)_&<
l7@gh(4$ZcW9dG`#C-1G$mC=gY%D}+D;OXk;vd$@?2>>J72ZR6s

literal 0
HcmV?d00001

diff --git a/doc/html/CSMOn__wrapper_8cpp_source.html b/doc/html/CSMOn__wrapper_8cpp_source.html
new file mode 100644
index 0000000..8311f21
--- /dev/null
+++ b/doc/html/CSMOn__wrapper_8cpp_source.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: python/CSMOn_wrapper.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_7837fde3ab9c1fb2fc5be7b717af8d79.html">python</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CSMOn_wrapper.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CSMOn__wrapper_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * in the Software without restriction, including without limitation the rights</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * The above copyright notice and this permission notice shall be included in</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * all copies or substantial portions of the Software.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * Additionally, if used for any scientific purpose, the following reference</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * must be cited:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * Algorithms. In Proceedings of GECCO &#39;17, Berlin, Germany, July 15-19, 2017,</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THE SOFTWARE.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &quot;PSO.hpp&quot;</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &quot;CSMOn.hpp&quot;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct__Param.html">   49</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__Param.html">_Param</a> {</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keywordtype">char</span> *name;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordtype">char</span> c;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">int</span> i;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keywordtype">long</span> l;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="keywordtype">float</span> f;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keywordtype">double</span> d;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;} <a class="code" href="CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1">Param</a>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7">   69</a></span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">void</span> <a class="code" href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7">search</a>(<span class="keywordtype">char</span>* method, <a class="code" href="struct__Param.html">Param</a> *inParam, <a class="code" href="struct__Param.html">Param</a> *outParam, <span class="keywordtype">double</span> *outPos, callback_t fitnessFunction){</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="comment">// Replicate (and adapt) this block of code for each different search method you want to develop.</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="comment">// Begin template.</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keywordflow">if</span>(strcmp(method, <span class="stringliteral">&quot;pso&quot;</span>) == 0){</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="keywordtype">double</span> w, c1, c2, s1, s2, R;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keywordtype">int</span> i, n, p, M;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        <span class="comment">// Receive from Python caller any parameter you want.</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">for</span>(i=0; i &lt; 9; i++){</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">&quot;w&quot;</span>) == 0) w = inParam[i].d;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">&quot;c1&quot;</span>) == 0) c1 = inParam[i].d;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">&quot;c2&quot;</span>) == 0) c2 = inParam[i].d;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">&quot;n&quot;</span>) == 0) n = inParam[i].i;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">&quot;p&quot;</span>) == 0) p = inParam[i].i;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">&quot;s1&quot;</span>) == 0) s1 = inParam[i].d;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">&quot;s2&quot;</span>) == 0) s2 = inParam[i].d;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">&quot;M&quot;</span>) == 0) M = inParam[i].i;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">&quot;R&quot;</span>) == 0) R = inParam[i].d;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        }</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        printf(<span class="stringliteral">&quot;[CSMOn] Called search method %s with parameters: s1=%f, s2=%f, w=%f, c1=%f, c2=%f, n=%i, p=%i, M=%i, R=%f\n&quot;</span>, method, s1, s2, w, c1, c2, n, p, M, R);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="comment">// Search method instantiation.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <a class="code" href="classPSO.html">PSO</a> *pso = <span class="keyword">new</span> <a class="code" href="classPSO.html">PSO</a>(fitnessFunction, s1, s2, p, n, w, c1, c2);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="comment">// CSMOn instantiation and execution.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <a class="code" href="classCSMOn.html">CSMOn</a> *csmon = <span class="keyword">new</span> <a class="code" href="classCSMOn.html">CSMOn</a>(pso, M, R, 0);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        csmon-&gt;<a class="code" href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22">run</a>();</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="comment">// Read the final results.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keywordtype">double</span> *bestPos = <span class="keyword">new</span> <span class="keywordtype">double</span>[n];</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        csmon-&gt;<a class="code" href="classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6">getBestPos</a>(bestPos);</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="keywordflow">for</span>(i=0; i &lt; n; i++){ <span class="comment">// Send the final result back to Python caller.</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;            outPos[i] = bestPos[i];</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        }</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="comment">// Send any parameter you want back to Python caller.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="keywordtype">int</span> evals = csmon-&gt;<a class="code" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">getNEvals</a>();</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <span class="keywordtype">double</span> fit = csmon-&gt;<a class="code" href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5">getFitness</a>();</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="keywordflow">for</span>(i=0; i &lt; 2; i++){</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            <span class="keywordflow">if</span>(strcmp(outParam[i].name, <span class="stringliteral">&quot;nEvals&quot;</span>) == 0) outParam[i].i = evals;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(outParam[i].name, <span class="stringliteral">&quot;fit&quot;</span>) == 0) outParam[i].d = fit;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        }</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="comment">// Remind to clear any object that is not owned by Python caller.</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <span class="keyword">delete</span> bestPos;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <span class="keyword">delete</span> pso;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keyword">delete</span> csmon;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    }</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="comment">// End template.</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordflow">else</span> printf(<span class="stringliteral">&quot;Search method %s not supported yet.&quot;</span>, method);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}</div>
+<div class="ttc" id="CSMOn__wrapper_8cpp_html_a376fcabfd8429288efa3398dc2f3e8e1"><div class="ttname"><a href="CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1">Param</a></div><div class="ttdeci">struct _Param Param</div><div class="ttdoc">Contains a parameter received from / sent to the Python caller. </div></div>
+<div class="ttc" id="classCSMOn_html"><div class="ttname"><a href="classCSMOn.html">CSMOn</a></div><div class="ttdoc">Convergence Stabilization Modeling operating in Online Mode ( formely called of C&#39;MOn! )...</div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8hpp_source.html#l00074">CSMOn.hpp:74</a></div></div>
+<div class="ttc" id="classCSMOn_html_ac5665384c5c4af241bbead4f98fdb3c6"><div class="ttname"><a href="classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6">CSMOn::getBestPos</a></div><div class="ttdeci">int getBestPos(double *x)</div><div class="ttdoc">Get the final optimized result (position). </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8cpp_source.html#l00198">CSMOn.cpp:198</a></div></div>
+<div class="ttc" id="classPSO_html"><div class="ttname"><a href="classPSO.html">PSO</a></div><div class="ttdoc">Particle Swarm Optimization. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8hpp_source.html#l00053">PSO.hpp:53</a></div></div>
+<div class="ttc" id="classCSMOn_html_a287ef04ef03f758a2a121057e9798c22"><div class="ttname"><a href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22">CSMOn::run</a></div><div class="ttdeci">void run()</div><div class="ttdoc">Call this method to execute the search. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8cpp_source.html#l00068">CSMOn.cpp:68</a></div></div>
+<div class="ttc" id="struct__Param_html"><div class="ttname"><a href="struct__Param.html">_Param</a></div><div class="ttdoc">Contains a parameter received from / sent to the Python caller. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn__wrapper_8cpp_source.html#l00049">CSMOn_wrapper.cpp:49</a></div></div>
+<div class="ttc" id="classCSMOn_html_a4b1a2a4e99746adec24b3cdf683f31c5"><div class="ttname"><a href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5">CSMOn::getFitness</a></div><div class="ttdeci">double getFitness()</div><div class="ttdoc">Get the final fitness value. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8cpp_source.html#l00178">CSMOn.cpp:178</a></div></div>
+<div class="ttc" id="CSMOn__wrapper_8cpp_html_a918c532a1803542131c64811335fe6d7"><div class="ttname"><a href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7">search</a></div><div class="ttdeci">void search(char *method, Param *inParam, Param *outParam, double *outPos, callback_t fitnessFunction)</div><div class="ttdoc">The wrapper function for Python calls. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn__wrapper_8cpp_source.html#l00069">CSMOn_wrapper.cpp:69</a></div></div>
+<div class="ttc" id="classCSMOn_html_af423cda7d5f129d768ec5d4ef6f80593"><div class="ttname"><a href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">CSMOn::getNEvals</a></div><div class="ttdeci">int getNEvals()</div><div class="ttdoc">Get the actual number of evaluations executed. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn_8cpp_source.html#l00188">CSMOn.cpp:188</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/ISearch_8hpp_source.html b/doc/html/ISearch_8hpp_source.html
new file mode 100644
index 0000000..6bf4428
--- /dev/null
+++ b/doc/html/ISearch_8hpp_source.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: cpp/ISearch.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_df511e5bd85cec96854b39d5e1c27aa8.html">cpp</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ISearch.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * in the Software without restriction, including without limitation the rights</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * The above copyright notice and this permission notice shall be included in</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * all copies or substantial portions of the Software.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * Additionally, if used for any scientific purpose, the following reference</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * must be cited:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * Algorithms. In Proceedings of GECCO &#39;17, Berlin, Germany, July 15-19, 2017,</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THE SOFTWARE.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#ifndef ISEARCH_HPP_</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#define ISEARCH_HPP_</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classISearch.html">   40</a></span>&#160;<span class="keyword">class </span><a class="code" href="classISearch.html">ISearch</a>{</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="classISearch.html">ISearch</a>(){}</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classISearch.html">ISearch</a>()=0;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classISearch.html#a8eabe4ae3ed69ede2646a536f558f2fe">startup</a>()=0;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129">next</a>(<span class="keywordtype">int</span> M)=0;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classISearch.html#a9cee257ee19c02341da60440c5cddbd8">getBestPos</a>(<span class="keywordtype">double</span> *_x)=0;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">getNEvals</a>()=0;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">getFitness</a>()=0;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;};</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* ISEARCH_HPP_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="classISearch_html_a8eabe4ae3ed69ede2646a536f558f2fe"><div class="ttname"><a href="classISearch.html#a8eabe4ae3ed69ede2646a536f558f2fe">ISearch::startup</a></div><div class="ttdeci">virtual void startup()=0</div><div class="ttdoc">Startup the search method. </div></div>
+<div class="ttc" id="classISearch_html"><div class="ttname"><a href="classISearch.html">ISearch</a></div><div class="ttdoc">The interface that the search methods must to implement. </div><div class="ttdef"><b>Definition:</b> <a href="ISearch_8hpp_source.html#l00040">ISearch.hpp:40</a></div></div>
+<div class="ttc" id="classISearch_html_a3504ed6684ca6c82aa79c40b965d5237"><div class="ttname"><a href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">ISearch::getFitness</a></div><div class="ttdeci">virtual double getFitness()=0</div><div class="ttdoc">Get the best fitness value found up to the moment. </div></div>
+<div class="ttc" id="classISearch_html_ae3cc643bf0fbe9d9bac1d43642bbb129"><div class="ttname"><a href="classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129">ISearch::next</a></div><div class="ttdeci">virtual void next(int M)=0</div><div class="ttdoc">Obtain the next improvement. </div></div>
+<div class="ttc" id="classISearch_html_a56f6b069cc3dd7f8e3f2ff38bb681639"><div class="ttname"><a href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">ISearch::getNEvals</a></div><div class="ttdeci">virtual int getNEvals()=0</div><div class="ttdoc">Get the number of fitness function evaluations performed up to the moment. </div></div>
+<div class="ttc" id="classISearch_html_a9cee257ee19c02341da60440c5cddbd8"><div class="ttname"><a href="classISearch.html#a9cee257ee19c02341da60440c5cddbd8">ISearch::getBestPos</a></div><div class="ttdeci">virtual int getBestPos(double *_x)=0</div><div class="ttdoc">Get the best result obtained up to the moment. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/PSO_8cpp_source.html b/doc/html/PSO_8cpp_source.html
new file mode 100644
index 0000000..54c994a
--- /dev/null
+++ b/doc/html/PSO_8cpp_source.html
@@ -0,0 +1,257 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: cpp/PSO.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_df511e5bd85cec96854b39d5e1c27aa8.html">cpp</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">PSO.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * in the Software without restriction, including without limitation the rights</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * The above copyright notice and this permission notice shall be included in</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * all copies or substantial portions of the Software.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * Additionally, if used for any scientific purpose, the following reference</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * must be cited:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * Algorithms. In Proceedings of GECCO &#39;17, Berlin, Germany, July 15-19, 2017,</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THE SOFTWARE.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;PSO.hpp&quot;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classPSO.html#a810105b87e4f6fc026edd6b4ef484953">   45</a></span>&#160;<a class="code" href="classPSO.html#a810105b87e4f6fc026edd6b4ef484953">PSO::PSO</a>(callback_t fitnessFunction, <span class="keywordtype">double</span> s1, <span class="keywordtype">double</span> s2, <span class="keywordtype">int</span> p, <span class="keywordtype">int</span> n, <span class="keywordtype">double</span> w, <span class="keywordtype">double</span> c1, <span class="keywordtype">double</span> c2){</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    this-&gt;fitnessFunction = fitnessFunction;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    this-&gt;s1 = s1;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    this-&gt;s2 = s2;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    this-&gt;p = p;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    this-&gt;n = n;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    this-&gt;c1 = c1;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    this-&gt;c2 = c2;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keywordflow">if</span>(w &lt; 0){</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        decreasingW = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        this-&gt;w = abs(w);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    }</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordflow">else</span>{</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        decreasingW = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        this-&gt;w = w;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    }</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    Gb = <span class="keyword">new</span> <span class="keywordtype">double</span>[n];</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    pb = <span class="keyword">new</span> <span class="keywordtype">double</span>*[p];</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    pb_Fit = <span class="keyword">new</span> <span class="keywordtype">double</span>[p];</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    x = <span class="keyword">new</span> <span class="keywordtype">double</span>*[p];</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    fit = <span class="keyword">new</span> <span class="keywordtype">double</span>[p];</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    v = <span class="keyword">new</span> <span class="keywordtype">double</span>*[p];</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i &lt; p; i++){</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        pb[i] = <span class="keyword">new</span> <span class="keywordtype">double</span>[n];</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        x[i] = <span class="keyword">new</span> <span class="keywordtype">double</span>[n];</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        v[i] = <span class="keyword">new</span> <span class="keywordtype">double</span>[n];</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    }</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    seed = 1;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    nEvals = 0;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    Gb_Fit = DBL_MAX;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    gb = -1;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;}</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;PSO::~PSO() {</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i &lt; p; i++){</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <span class="keyword">delete</span> pb[i];</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keyword">delete</span> x[i];</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <span class="keyword">delete</span> v[i];</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    }</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keyword">delete</span> Gb;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keyword">delete</span> pb;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keyword">delete</span> pb_Fit;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keyword">delete</span> x;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keyword">delete</span> fit;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keyword">delete</span> v;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;}</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classPSO.html#a4866695395fb314ea732bccde6691ef3">   96</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPSO.html#a4866695395fb314ea732bccde6691ef3">PSO::startup</a>(){</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    seed = <a class="code" href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">getRandomSeed</a>();</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    nEvals = 0;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    Gb_Fit = DBL_MAX;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    gb = -1;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j, i=0; i &lt; p; i++){</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">for</span>(j=0; j &lt; n; j++) v[i][j] = RAND_DOUBLE(seed, s1, s2)/10;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keywordflow">for</span>(j=0; j &lt; n; j++) x[i][j] = RAND_DOUBLE(seed, s1, s2);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        COPY_ARR(x[i], pb[i], n);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        pb_Fit[i] = fit[i] = fitnessFunction(x[i], n);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="keywordflow">if</span>(pb_Fit[i] &lt; Gb_Fit){</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;            COPY_ARR(pb[i], Gb, n);</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            Gb_Fit = pb_Fit[i];</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            gb = i;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        }</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    }</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;}</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classPSO.html#a465d956bdb86e93bc06b6fb016feb70c">  120</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classPSO.html#a465d956bdb86e93bc06b6fb016feb70c">PSO::next</a>(<span class="keywordtype">int</span> M) {</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordtype">bool</span> found = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordtype">int</span> i, j;</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordtype">double</span> currW = w - (w / M) * nEvals;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordflow">while</span>(!found &amp;&amp; nEvals &lt; M){</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keywordflow">for</span>(i=0; i &lt; p; i++){</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            <span class="keywordflow">for</span>(j=0; j &lt; n; j++){</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                v[i][j] = currW * v[i][j] + c1 * RAND_DOUBLE(seed, 0, 1) * (pb[i][j] - x[i][j])</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                                      + c2 * RAND_DOUBLE(seed, 0, 1) * (Gb[j] - x[i][j]);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                x[i][j] += v[i][j];</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                <span class="keywordflow">if</span>(x[i][j] &lt; s1)</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                    x[i][j] = s1;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(x[i][j] &gt; s2)</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                    x[i][j] = s2;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;            }</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;            fit[i] = fitnessFunction(x[i], n);</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;            nEvals++;</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        }</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="keywordflow">for</span>(i=0; i &lt; p; i++){</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;            <span class="keywordflow">if</span>(fit[i] &lt; pb_Fit[i]){</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                COPY_ARR(x[i], pb[i], n);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                pb_Fit[i] = fit[i];</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                <span class="keywordflow">if</span>(pb_Fit[i] &lt; Gb_Fit){</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                    found = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                    COPY_ARR(pb[i], Gb, n);</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                    Gb_Fit = pb_Fit[i];</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                    gb = i;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                }</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;            }</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        }</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <span class="keywordflow">if</span>(decreasingW) currW -= w / M;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    }</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;}</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e">  160</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e">PSO::getBestPos</a>(<span class="keywordtype">double</span> *_x){</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    COPY_ARR(pb[gb], _x, n);</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="keywordflow">return</span> gb;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;}</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba">  170</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba">PSO::getNEvals</a>() {</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keywordflow">return</span> nEvals;</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;}</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7">  180</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7">PSO::getFitness</a>() {</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="keywordflow">return</span> Gb_Fit;</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;}</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div>
+<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">  191</a></span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">PSO::getRandomSeed</a>(){</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="keyword">struct </span>timeval tv;</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    gettimeofday(&amp;tv,NULL);</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keywordflow">return</span> tv.tv_usec;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;}</div>
+<div class="ttc" id="classPSO_html_aa5c58e658a718b2f75b58b51c312f2ba"><div class="ttname"><a href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba">PSO::getNEvals</a></div><div class="ttdeci">int getNEvals()</div><div class="ttdoc">Get the number of fitness function evaluations performed up to the moment. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00170">PSO.cpp:170</a></div></div>
+<div class="ttc" id="classPSO_html_a465d956bdb86e93bc06b6fb016feb70c"><div class="ttname"><a href="classPSO.html#a465d956bdb86e93bc06b6fb016feb70c">PSO::next</a></div><div class="ttdeci">void next(int M)</div><div class="ttdoc">Obtain the next improvement. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00120">PSO.cpp:120</a></div></div>
+<div class="ttc" id="classPSO_html_a0e3ed1fa7e0bb64ca9e6afcdca8d1813"><div class="ttname"><a href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">PSO::getRandomSeed</a></div><div class="ttdeci">unsigned int getRandomSeed()</div><div class="ttdoc">Get a random number to be used as seed for the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00191">PSO.cpp:191</a></div></div>
+<div class="ttc" id="classPSO_html_a4866695395fb314ea732bccde6691ef3"><div class="ttname"><a href="classPSO.html#a4866695395fb314ea732bccde6691ef3">PSO::startup</a></div><div class="ttdeci">void startup()</div><div class="ttdoc">Startup the PSO. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00096">PSO.cpp:96</a></div></div>
+<div class="ttc" id="classPSO_html_a9859c4126970209c8c8f534d4458dbd7"><div class="ttname"><a href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7">PSO::getFitness</a></div><div class="ttdeci">double getFitness()</div><div class="ttdoc">Get the best fitness value found up to the moment. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00180">PSO.cpp:180</a></div></div>
+<div class="ttc" id="classPSO_html_a649d2a7b444ac91bfb05d7e9f3c2e20e"><div class="ttname"><a href="classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e">PSO::getBestPos</a></div><div class="ttdeci">int getBestPos(double *_x)</div><div class="ttdoc">Get the best result obtained up to the moment (global best). </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00160">PSO.cpp:160</a></div></div>
+<div class="ttc" id="classPSO_html_a810105b87e4f6fc026edd6b4ef484953"><div class="ttname"><a href="classPSO.html#a810105b87e4f6fc026edd6b4ef484953">PSO::PSO</a></div><div class="ttdeci">PSO(callback_t fitnessFunction, double s1, double s2, int p, int n, double w, double c1, double c2)</div><div class="ttdoc">A standard implementation of PSO. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00045">PSO.cpp:45</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/PSO_8hpp_source.html b/doc/html/PSO_8hpp_source.html
new file mode 100644
index 0000000..79c7cb2
--- /dev/null
+++ b/doc/html/PSO_8hpp_source.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: cpp/PSO.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_df511e5bd85cec96854b39d5e1c27aa8.html">cpp</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">PSO.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * in the Software without restriction, including without limitation the rights</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * copies of the Software, and to permit persons to whom the Software is</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * furnished to do so, subject to the following conditions:</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * The above copyright notice and this permission notice shall be included in</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * all copies or substantial portions of the Software.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * Additionally, if used for any scientific purpose, the following reference</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * must be cited:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * </span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * Algorithms. In Proceedings of GECCO &#39;17, Berlin, Germany, July 15-19, 2017,</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THE SOFTWARE.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#ifndef PSO_HPP_</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#define PSO_HPP_</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &lt;sys/time.h&gt;</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;float.h&gt;</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;ISearch.hpp&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#define PI (3.141592653589793238462643383279)</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#define COPY_ARR(orig, dest, sz) for(int _i_=0; _i_ &lt; sz; dest[_i_] = orig[_i_], _i_++);</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#define RAND_DOUBLE(seed, a, b) ((a==b)?a:(a+(((double)rand_r(&amp;seed))/RAND_MAX)*(b-a)))</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keyword">typedef</span> double (*callback_t)(<span class="keywordtype">double</span> *buf, <span class="keywordtype">int</span> n);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classPSO.html">   53</a></span>&#160;<span class="keyword">class </span><a class="code" href="classPSO.html">PSO</a> : <span class="keyword">public</span> <a class="code" href="classISearch.html">ISearch</a>{</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> seed;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keywordtype">bool</span> decreasingW;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordtype">int</span> p, n, nEvals, gb;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordtype">double</span> **x, *fit, s1, s2, w, c1, c2, *Gb, Gb_Fit, **pb, *pb_Fit, **v;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    callback_t fitnessFunction;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <a class="code" href="classPSO.html#a810105b87e4f6fc026edd6b4ef484953">PSO</a>(callback_t fitnessFunction, <span class="keywordtype">double</span> s1, <span class="keywordtype">double</span> s2, <span class="keywordtype">int</span> p, <span class="keywordtype">int</span> n, <span class="keywordtype">double</span> w, <span class="keywordtype">double</span> c1, <span class="keywordtype">double</span> c2) ;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    ~<a class="code" href="classPSO.html">PSO</a>();</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPSO.html#a4866695395fb314ea732bccde6691ef3">startup</a>();</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPSO.html#a465d956bdb86e93bc06b6fb016feb70c">next</a>(<span class="keywordtype">int</span> M);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e">getBestPos</a>(<span class="keywordtype">double</span> *_x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba">getNEvals</a>();</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7">getFitness</a>();</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">getRandomSeed</a>();</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;};</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* PSO_HPP_ */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="classPSO_html_aa5c58e658a718b2f75b58b51c312f2ba"><div class="ttname"><a href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba">PSO::getNEvals</a></div><div class="ttdeci">int getNEvals()</div><div class="ttdoc">Get the number of fitness function evaluations performed up to the moment. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00170">PSO.cpp:170</a></div></div>
+<div class="ttc" id="classPSO_html_a465d956bdb86e93bc06b6fb016feb70c"><div class="ttname"><a href="classPSO.html#a465d956bdb86e93bc06b6fb016feb70c">PSO::next</a></div><div class="ttdeci">void next(int M)</div><div class="ttdoc">Obtain the next improvement. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00120">PSO.cpp:120</a></div></div>
+<div class="ttc" id="classISearch_html"><div class="ttname"><a href="classISearch.html">ISearch</a></div><div class="ttdoc">The interface that the search methods must to implement. </div><div class="ttdef"><b>Definition:</b> <a href="ISearch_8hpp_source.html#l00040">ISearch.hpp:40</a></div></div>
+<div class="ttc" id="classPSO_html"><div class="ttname"><a href="classPSO.html">PSO</a></div><div class="ttdoc">Particle Swarm Optimization. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8hpp_source.html#l00053">PSO.hpp:53</a></div></div>
+<div class="ttc" id="classPSO_html_a0e3ed1fa7e0bb64ca9e6afcdca8d1813"><div class="ttname"><a href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">PSO::getRandomSeed</a></div><div class="ttdeci">unsigned int getRandomSeed()</div><div class="ttdoc">Get a random number to be used as seed for the random number generator. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00191">PSO.cpp:191</a></div></div>
+<div class="ttc" id="classPSO_html_a4866695395fb314ea732bccde6691ef3"><div class="ttname"><a href="classPSO.html#a4866695395fb314ea732bccde6691ef3">PSO::startup</a></div><div class="ttdeci">void startup()</div><div class="ttdoc">Startup the PSO. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00096">PSO.cpp:96</a></div></div>
+<div class="ttc" id="classPSO_html_a9859c4126970209c8c8f534d4458dbd7"><div class="ttname"><a href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7">PSO::getFitness</a></div><div class="ttdeci">double getFitness()</div><div class="ttdoc">Get the best fitness value found up to the moment. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00180">PSO.cpp:180</a></div></div>
+<div class="ttc" id="classPSO_html_a649d2a7b444ac91bfb05d7e9f3c2e20e"><div class="ttname"><a href="classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e">PSO::getBestPos</a></div><div class="ttdeci">int getBestPos(double *_x)</div><div class="ttdoc">Get the best result obtained up to the moment (global best). </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00160">PSO.cpp:160</a></div></div>
+<div class="ttc" id="classPSO_html_a810105b87e4f6fc026edd6b4ef484953"><div class="ttname"><a href="classPSO.html#a810105b87e4f6fc026edd6b4ef484953">PSO::PSO</a></div><div class="ttdeci">PSO(callback_t fitnessFunction, double s1, double s2, int p, int n, double w, double c1, double c2)</div><div class="ttdoc">A standard implementation of PSO. </div><div class="ttdef"><b>Definition:</b> <a href="PSO_8cpp_source.html#l00045">PSO.cpp:45</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/annotated.html b/doc/html/annotated.html
new file mode 100644
index 0000000..d6bdcbd
--- /dev/null
+++ b/doc/html/annotated.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Data Structures</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structures</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct__Param.html" target="_self">_Param</a></td><td class="desc">Contains a parameter received from / sent to the Python caller </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct__point.html" target="_self">_point</a></td><td class="desc">A point representing the number of evaluations and the respective fitness value </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCSMOn.html" target="_self">CSMOn</a></td><td class="desc">Convergence Stabilization Modeling operating in Online Mode ( formely called of C'MOn! ) </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classISearch.html" target="_self">ISearch</a></td><td class="desc">The interface that the search methods must to implement </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classPSO.html" target="_self">PSO</a></td><td class="desc">Particle Swarm Optimization </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/bc_s.png b/doc/html/bc_s.png
new file mode 100644
index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2
GIT binary patch
literal 676
zcmeAS@N?(olHy`uVBq!ia0y~yVBlb2V36ZrV_;wqY>4M&U|`Djba4!+V0=6GbhdDy
z$g%Ttcb+`6#8YkZGXC6IYKEp}T6srWr?B1GF(F9Dgj?HVt465w+N3F~L=2m{I{LlD
z^>%5vZqF6G-~TJ)wO6ipu)6bXjiwh*F19Y=5PHv}_T<_>?)LXZ=brv~w|9<l`ZtZL
z?|(0;#ajw|uAOvsK7&JN?yXXV1R<Uq83`Z1Us=z|u%P7^o7(n|GIAfU->jRwclw=A
z?M&zHUgY;R*`eBLylJ`psaF}A4gY^O%Fm2B5}9e|mBi(c{`-FBy$*q2n=WRjOR}*p
zfBY&&@WtM>%(GnQhCZ8Hrfu)q@J^}V*|pnFG0l-`VjpgNRw?t<el>~DC2x;r?WccM
z%Omn1@irTG-CEDAzJ9+RYg5`mgEysJmY;n7W;LYAo9$3t&1meNHsy-)mEv3(1`Syq
z@t=pYwN6di?6r!ub^RVD1}~=5i}Ig{wN2S0S{h%+$*`d)R#lZfS1eDaG`5P5VMCE=
z^x0z@R^R$Gm60JLb?c-y&!09YUR*eu&fwsA<<`9iTVESDS?SxbGI$-AnRFpglk?-w
z))MJk_rJ3+X!!n)F*APYoSvijm+7tb{~abbGah}k{T}t&$Z~D@q`Q~4Y!~SWvp(e`
zVceXhX1;R!uD#zA6+PP+HDAA0(fxK@?D8*$&9kMu%}YGP_Juw8c;!!0+6oK)g(sSw
zY~HWlnwgvTf6fV!_7>ip`-^|dGPU1!;hwI1lEZZJTJ>Wl_HWi~`r*qYH%WNrY>^GS
z)7LcBm>zvDv~{n$U&>{X3q>_wrW{sld81^mt-e{7!GY7X-Tl!#sfouWS|6QU6KDPP
n@q}r5#vGT5l>WvCZQg&#VN<^6zNab-3=9mOu6{1-oD!M<Vj?qg

literal 0
HcmV?d00001

diff --git a/doc/html/bdwn.png b/doc/html/bdwn.png
new file mode 100644
index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU|?rpVBp|jV_;w~WqAssqC8z3Ln;{G&OOcBpdjEf
zKVX{S#~kT-xd*t5HZo>y(o5xe(dH6;<K(`Z=dUpA*}ClUmV1mfFY9M6Hfso*_1bs~
z`%!j#pJH{5+BJ6CT=Tp?%Y0wDKUpv%LA;4O?z%Kf^S$0Y1_lNOPgg&ebxsLQ01LD;
A>i_@%

literal 0
HcmV?d00001

diff --git a/doc/html/classCSMOn-members.html b/doc/html/classCSMOn-members.html
new file mode 100644
index 0000000..7954a51
--- /dev/null
+++ b/doc/html/classCSMOn-members.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CSMOn Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classCSMOn.html">CSMOn</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>adjustExp</b>(double r) (defined in <a class="el" href="classCSMOn.html">CSMOn</a>)</td><td class="entry"><a class="el" href="classCSMOn.html">CSMOn</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>adjustLog</b>(double r, int pT) (defined in <a class="el" href="classCSMOn.html">CSMOn</a>)</td><td class="entry"><a class="el" href="classCSMOn.html">CSMOn</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classCSMOn.html#a9b25325acfda9b579b3a272ed474480e">CSMOn</a>(ISearch *search, int M, double R, double minEstimatedFit)</td><td class="entry"><a class="el" href="classCSMOn.html">CSMOn</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getBest</b>(int nBest) (defined in <a class="el" href="classCSMOn.html">CSMOn</a>)</td><td class="entry"><a class="el" href="classCSMOn.html">CSMOn</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6">getBestPos</a>(double *x)</td><td class="entry"><a class="el" href="classCSMOn.html">CSMOn</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5">getFitness</a>()</td><td class="entry"><a class="el" href="classCSMOn.html">CSMOn</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">getNEvals</a>()</td><td class="entry"><a class="el" href="classCSMOn.html">CSMOn</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22">run</a>()</td><td class="entry"><a class="el" href="classCSMOn.html">CSMOn</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~CSMOn</b>() (defined in <a class="el" href="classCSMOn.html">CSMOn</a>)</td><td class="entry"><a class="el" href="classCSMOn.html">CSMOn</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:54:05 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/classCSMOn.html b/doc/html/classCSMOn.html
new file mode 100644
index 0000000..0def6ee
--- /dev/null
+++ b/doc/html/classCSMOn.html
@@ -0,0 +1,258 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: CSMOn Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">CSMOn Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Convergence Stabilization Modeling operating in Online Mode ( formely called of C'MOn! ).  
+ <a href="classCSMOn.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="CSMOn_8hpp_source.html">CSMOn.hpp</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a9b25325acfda9b579b3a272ed474480e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCSMOn.html#a9b25325acfda9b579b3a272ed474480e">CSMOn</a> (<a class="el" href="classISearch.html">ISearch</a> *search, int M, double R, double minEstimatedFit)</td></tr>
+<tr class="memdesc:a9b25325acfda9b579b3a272ed474480e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class for <a class="el" href="classCSMOn.html" title="Convergence Stabilization Modeling operating in Online Mode ( formely called of C&#39;MOn! )...">CSMOn</a>.  <a href="#a9b25325acfda9b579b3a272ed474480e">More...</a><br /></td></tr>
+<tr class="separator:a9b25325acfda9b579b3a272ed474480e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a287ef04ef03f758a2a121057e9798c22"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a287ef04ef03f758a2a121057e9798c22"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22">run</a> ()</td></tr>
+<tr class="memdesc:a287ef04ef03f758a2a121057e9798c22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call this method to execute the search. <br /></td></tr>
+<tr class="separator:a287ef04ef03f758a2a121057e9798c22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a758de932efcf1be4537984541123774b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a758de932efcf1be4537984541123774b"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>getBest</b> (int nBest)</td></tr>
+<tr class="separator:a758de932efcf1be4537984541123774b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a231fc5e5b6a478e8315f1fc867771ff2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a231fc5e5b6a478e8315f1fc867771ff2"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>adjustExp</b> (double r)</td></tr>
+<tr class="separator:a231fc5e5b6a478e8315f1fc867771ff2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c2ce1d69d99154585fe49908cd40fa7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c2ce1d69d99154585fe49908cd40fa7"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>adjustLog</b> (double r, int pT)</td></tr>
+<tr class="separator:a2c2ce1d69d99154585fe49908cd40fa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af423cda7d5f129d768ec5d4ef6f80593"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">getNEvals</a> ()</td></tr>
+<tr class="memdesc:af423cda7d5f129d768ec5d4ef6f80593"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the actual number of evaluations executed.  <a href="#af423cda7d5f129d768ec5d4ef6f80593">More...</a><br /></td></tr>
+<tr class="separator:af423cda7d5f129d768ec5d4ef6f80593"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b1a2a4e99746adec24b3cdf683f31c5"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5">getFitness</a> ()</td></tr>
+<tr class="memdesc:a4b1a2a4e99746adec24b3cdf683f31c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the final fitness value.  <a href="#a4b1a2a4e99746adec24b3cdf683f31c5">More...</a><br /></td></tr>
+<tr class="separator:a4b1a2a4e99746adec24b3cdf683f31c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5665384c5c4af241bbead4f98fdb3c6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6">getBestPos</a> (double *x)</td></tr>
+<tr class="memdesc:ac5665384c5c4af241bbead4f98fdb3c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the final optimized result (position).  <a href="#ac5665384c5c4af241bbead4f98fdb3c6">More...</a><br /></td></tr>
+<tr class="separator:ac5665384c5c4af241bbead4f98fdb3c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Convergence Stabilization Modeling operating in Online Mode ( formely called of C'MOn! ). </p>
+<dl class="section date"><dt>Date</dt><dd>04/Mar/2017 </dd></dl>
+<dl class="section author"><dt>Author</dt><dd>Peter Frank Perroni (<a href="#" onclick="location.href='mai'+'lto:'+'pfp'+'er'+'ron'+'i@'+'gma'+'il'+'.co'+'m'; return false;">pfper<span style="display: none;">.nosp@m.</span>roni<span style="display: none;">.nosp@m.</span>@gmai<span style="display: none;">.nosp@m.</span>l.co<span style="display: none;">.nosp@m.</span>m</a>) </dd></dl>
+
+<p>Definition at line <a class="el" href="CSMOn_8hpp_source.html#l00074">74</a> of file <a class="el" href="CSMOn_8hpp_source.html">CSMOn.hpp</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a9b25325acfda9b579b3a272ed474480e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">CSMOn::CSMOn </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classISearch.html">ISearch</a> *&#160;</td>
+          <td class="paramname"><em>search</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>M</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>R</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>minEstimatedFit</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Class for <a class="el" href="classCSMOn.html" title="Convergence Stabilization Modeling operating in Online Mode ( formely called of C&#39;MOn! )...">CSMOn</a>. </p>
+<p>Always call this class directly (instead of the search method).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">search</td><td>The instance for the search method. </td></tr>
+    <tr><td class="paramname">M</td><td>The maximum number of fitness function evaluations allocated for this run. </td></tr>
+    <tr><td class="paramname">R</td><td>The relaxation to be used for the limit calculations, in the interval ]0,1[. For decreasing relaxation, provide it in negative values. </td></tr>
+    <tr><td class="paramname">minEstimatedFit</td><td>The lowest fitness value expected. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="CSMOn_8cpp_source.html#l00043">43</a> of file <a class="el" href="CSMOn_8cpp_source.html">CSMOn.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ac5665384c5c4af241bbead4f98fdb3c6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CSMOn::getBestPos </td>
+          <td>(</td>
+          <td class="paramtype">double *&#160;</td>
+          <td class="paramname"><em>x</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the final optimized result (position). </p>
+<dl class="section return"><dt>Returns</dt><dd>The final position. </dd></dl>
+
+<p>Definition at line <a class="el" href="CSMOn_8cpp_source.html#l00198">198</a> of file <a class="el" href="CSMOn_8cpp_source.html">CSMOn.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4b1a2a4e99746adec24b3cdf683f31c5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double CSMOn::getFitness </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the final fitness value. </p>
+<dl class="section return"><dt>Returns</dt><dd>The final fitness value. </dd></dl>
+
+<p>Definition at line <a class="el" href="CSMOn_8cpp_source.html#l00178">178</a> of file <a class="el" href="CSMOn_8cpp_source.html">CSMOn.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af423cda7d5f129d768ec5d4ef6f80593"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CSMOn::getNEvals </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the actual number of evaluations executed. </p>
+<dl class="section return"><dt>Returns</dt><dd>The actual number of evaluations executed. </dd></dl>
+
+<p>Definition at line <a class="el" href="CSMOn_8cpp_source.html#l00188">188</a> of file <a class="el" href="CSMOn_8cpp_source.html">CSMOn.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>cpp/<a class="el" href="CSMOn_8hpp_source.html">CSMOn.hpp</a></li>
+<li>cpp/<a class="el" href="CSMOn_8cpp_source.html">CSMOn.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/classCSMOn_1_1Param-members.html b/doc/html/classCSMOn_1_1Param-members.html
new file mode 100644
index 0000000..93bae7b
--- /dev/null
+++ b/doc/html/classCSMOn_1_1Param-members.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>CSMOn</b></li><li class="navelem"><a class="el" href="classCSMOn_1_1Param.html">Param</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CSMOn.Param Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classCSMOn_1_1Param.html">CSMOn.Param</a>, including all inherited members.</p>
+<table class="directory">
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:11:46 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/classCSMOn_1_1Param.html b/doc/html/classCSMOn_1_1Param.html
new file mode 100644
index 0000000..cba5e8d
--- /dev/null
+++ b/doc/html/classCSMOn_1_1Param.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: CSMOn.Param Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>CSMOn</b></li><li class="navelem"><a class="el" href="classCSMOn_1_1Param.html">Param</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="classCSMOn_1_1Param-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">CSMOn.Param Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for CSMOn.Param:</div>
+<div class="dyncontent">
+<div class="center"><img src="classCSMOn_1_1Param__inherit__graph.png" border="0" usemap="#CSMOn_8Param_inherit__map" alt="Inheritance graph"/></div>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<div class="dynheader">
+Collaboration diagram for CSMOn.Param:</div>
+<div class="dyncontent">
+<div class="center"><img src="classCSMOn_1_1Param__coll__graph.png" border="0" usemap="#CSMOn_8Param_coll__map" alt="Collaboration graph"/></div>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="CSMOn_8py_source.html#l00040">40</a> of file <a class="el" href="CSMOn_8py_source.html">CSMOn.py</a>.</p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li>python/<a class="el" href="CSMOn_8py_source.html">CSMOn.py</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:11:46 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/classCSMOn_1_1ParamArrayType-members.html b/doc/html/classCSMOn_1_1ParamArrayType-members.html
new file mode 100644
index 0000000..7a4df8b
--- /dev/null
+++ b/doc/html/classCSMOn_1_1ParamArrayType-members.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>CSMOn</b></li><li class="navelem"><a class="el" href="classCSMOn_1_1ParamArrayType.html">ParamArrayType</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CSMOn.ParamArrayType Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>from_array</b> (defined in <a class="el" href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a>)</td><td class="entry"><a class="el" href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>from_list</b> (defined in <a class="el" href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a>)</td><td class="entry"><a class="el" href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>from_ndarray</b> (defined in <a class="el" href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a>)</td><td class="entry"><a class="el" href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>from_param</b> (defined in <a class="el" href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a>)</td><td class="entry"><a class="el" href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>from_tuple</b> (defined in <a class="el" href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a>)</td><td class="entry"><a class="el" href="classCSMOn_1_1ParamArrayType.html">CSMOn.ParamArrayType</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:11:46 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/classCSMOn_1_1ParamArrayType.html b/doc/html/classCSMOn_1_1ParamArrayType.html
new file mode 100644
index 0000000..8354214
--- /dev/null
+++ b/doc/html/classCSMOn_1_1ParamArrayType.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: CSMOn.ParamArrayType Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>CSMOn</b></li><li class="navelem"><a class="el" href="classCSMOn_1_1ParamArrayType.html">ParamArrayType</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="classCSMOn_1_1ParamArrayType-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">CSMOn.ParamArrayType Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a45129224abd352dd05594d5508f28387"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45129224abd352dd05594d5508f28387"></a>
+def&#160;</td><td class="memItemRight" valign="bottom"><b>from_param</b></td></tr>
+<tr class="separator:a45129224abd352dd05594d5508f28387"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a339f251b86dd4c8063011958a5402074"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a339f251b86dd4c8063011958a5402074"></a>
+def&#160;</td><td class="memItemRight" valign="bottom"><b>from_array</b></td></tr>
+<tr class="separator:a339f251b86dd4c8063011958a5402074"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf96e3b6a7aa2946f623f5190b2d1263"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf96e3b6a7aa2946f623f5190b2d1263"></a>
+def&#160;</td><td class="memItemRight" valign="bottom"><b>from_list</b></td></tr>
+<tr class="separator:aaf96e3b6a7aa2946f623f5190b2d1263"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d65964e49ee613dbeabf80e27f0a510"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4d65964e49ee613dbeabf80e27f0a510"></a>
+def&#160;</td><td class="memItemRight" valign="bottom"><b>from_ndarray</b></td></tr>
+<tr class="separator:a4d65964e49ee613dbeabf80e27f0a510"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:af23274cf5a626b4e5873a617993e0390"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af23274cf5a626b4e5873a617993e0390"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>from_tuple</b> = from_list</td></tr>
+<tr class="separator:af23274cf5a626b4e5873a617993e0390"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="CSMOn_8py_source.html#l00049">49</a> of file <a class="el" href="CSMOn_8py_source.html">CSMOn.py</a>.</p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li>python/<a class="el" href="CSMOn_8py_source.html">CSMOn.py</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:11:46 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/classCSMOn_1_1Param__coll__graph.map b/doc/html/classCSMOn_1_1Param__coll__graph.map
new file mode 100644
index 0000000..25d8585
--- /dev/null
+++ b/doc/html/classCSMOn_1_1Param__coll__graph.map
@@ -0,0 +1,2 @@
+<map id="CSMOn.Param" name="CSMOn.Param">
+</map>
diff --git a/doc/html/classCSMOn_1_1Param__coll__graph.md5 b/doc/html/classCSMOn_1_1Param__coll__graph.md5
new file mode 100644
index 0000000..0b61af1
--- /dev/null
+++ b/doc/html/classCSMOn_1_1Param__coll__graph.md5
@@ -0,0 +1 @@
+1343fb12441ea65a8819af7646476432
\ No newline at end of file
diff --git a/doc/html/classCSMOn_1_1Param__coll__graph.png b/doc/html/classCSMOn_1_1Param__coll__graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd58fc7eeff0e05b0c969c4cf6672ed20a4998cf
GIT binary patch
literal 3590
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

literal 0
HcmV?d00001

diff --git a/doc/html/classCSMOn_1_1Param__inherit__graph.map b/doc/html/classCSMOn_1_1Param__inherit__graph.map
new file mode 100644
index 0000000..25d8585
--- /dev/null
+++ b/doc/html/classCSMOn_1_1Param__inherit__graph.map
@@ -0,0 +1,2 @@
+<map id="CSMOn.Param" name="CSMOn.Param">
+</map>
diff --git a/doc/html/classCSMOn_1_1Param__inherit__graph.md5 b/doc/html/classCSMOn_1_1Param__inherit__graph.md5
new file mode 100644
index 0000000..0b61af1
--- /dev/null
+++ b/doc/html/classCSMOn_1_1Param__inherit__graph.md5
@@ -0,0 +1 @@
+1343fb12441ea65a8819af7646476432
\ No newline at end of file
diff --git a/doc/html/classCSMOn_1_1Param__inherit__graph.png b/doc/html/classCSMOn_1_1Param__inherit__graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd58fc7eeff0e05b0c969c4cf6672ed20a4998cf
GIT binary patch
literal 3590
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

literal 0
HcmV?d00001

diff --git a/doc/html/classCSMOn__coll__graph.map b/doc/html/classCSMOn__coll__graph.map
new file mode 100644
index 0000000..d866e6f
--- /dev/null
+++ b/doc/html/classCSMOn__coll__graph.map
@@ -0,0 +1,3 @@
+<map id="CSMOn" name="CSMOn">
+<area shape="rect" id="node2" href="$classISearch.html" title="ISearch" alt="" coords="7,5,73,32"/>
+</map>
diff --git a/doc/html/classCSMOn__coll__graph.md5 b/doc/html/classCSMOn__coll__graph.md5
new file mode 100644
index 0000000..b55b306
--- /dev/null
+++ b/doc/html/classCSMOn__coll__graph.md5
@@ -0,0 +1 @@
+dcf5de90018887cef9d64ee9fcc9be70
\ No newline at end of file
diff --git a/doc/html/classCSMOn__coll__graph.png b/doc/html/classCSMOn__coll__graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..a921a2a035f471164515dd2e3f3314d9e09700f8
GIT binary patch
literal 2963
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

literal 0
HcmV?d00001

diff --git a/doc/html/classISearch-members.html b/doc/html/classISearch-members.html
new file mode 100644
index 0000000..03bf143
--- /dev/null
+++ b/doc/html/classISearch-members.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ISearch Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classISearch.html">ISearch</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classISearch.html#a9cee257ee19c02341da60440c5cddbd8">getBestPos</a>(double *_x)=0</td><td class="entry"><a class="el" href="classISearch.html">ISearch</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">getFitness</a>()=0</td><td class="entry"><a class="el" href="classISearch.html">ISearch</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">getNEvals</a>()=0</td><td class="entry"><a class="el" href="classISearch.html">ISearch</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>ISearch</b>() (defined in <a class="el" href="classISearch.html">ISearch</a>)</td><td class="entry"><a class="el" href="classISearch.html">ISearch</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129">next</a>(int M)=0</td><td class="entry"><a class="el" href="classISearch.html">ISearch</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classISearch.html#a8eabe4ae3ed69ede2646a536f558f2fe">startup</a>()=0</td><td class="entry"><a class="el" href="classISearch.html">ISearch</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~ISearch</b>()=0 (defined in <a class="el" href="classISearch.html">ISearch</a>)</td><td class="entry"><a class="el" href="classISearch.html">ISearch</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:54:05 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/classISearch.html b/doc/html/classISearch.html
new file mode 100644
index 0000000..7bdb5e6
--- /dev/null
+++ b/doc/html/classISearch.html
@@ -0,0 +1,267 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: ISearch Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">ISearch Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The interface that the search methods must to implement.  
+ <a href="classISearch.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="ISearch_8hpp_source.html">ISearch.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for ISearch:</div>
+<div class="dyncontent">
+<div class="center"><img src="classISearch__inherit__graph.png" border="0" usemap="#ISearch_inherit__map" alt="Inheritance graph"/></div>
+<map name="ISearch_inherit__map" id="ISearch_inherit__map">
+<area shape="rect" id="node2" href="classPSO.html" title="Particle Swarm Optimization. " alt="" coords="13,80,64,107"/></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a8eabe4ae3ed69ede2646a536f558f2fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8eabe4ae3ed69ede2646a536f558f2fe"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classISearch.html#a8eabe4ae3ed69ede2646a536f558f2fe">startup</a> ()=0</td></tr>
+<tr class="memdesc:a8eabe4ae3ed69ede2646a536f558f2fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Startup the search method. <br /></td></tr>
+<tr class="separator:a8eabe4ae3ed69ede2646a536f558f2fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3cc643bf0fbe9d9bac1d43642bbb129"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129">next</a> (int M)=0</td></tr>
+<tr class="memdesc:ae3cc643bf0fbe9d9bac1d43642bbb129"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain the next improvement.  <a href="#ae3cc643bf0fbe9d9bac1d43642bbb129">More...</a><br /></td></tr>
+<tr class="separator:ae3cc643bf0fbe9d9bac1d43642bbb129"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9cee257ee19c02341da60440c5cddbd8"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classISearch.html#a9cee257ee19c02341da60440c5cddbd8">getBestPos</a> (double *_x)=0</td></tr>
+<tr class="memdesc:a9cee257ee19c02341da60440c5cddbd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the best result obtained up to the moment.  <a href="#a9cee257ee19c02341da60440c5cddbd8">More...</a><br /></td></tr>
+<tr class="separator:a9cee257ee19c02341da60440c5cddbd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56f6b069cc3dd7f8e3f2ff38bb681639"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">getNEvals</a> ()=0</td></tr>
+<tr class="memdesc:a56f6b069cc3dd7f8e3f2ff38bb681639"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of fitness function evaluations performed up to the moment.  <a href="#a56f6b069cc3dd7f8e3f2ff38bb681639">More...</a><br /></td></tr>
+<tr class="separator:a56f6b069cc3dd7f8e3f2ff38bb681639"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3504ed6684ca6c82aa79c40b965d5237"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">getFitness</a> ()=0</td></tr>
+<tr class="memdesc:a3504ed6684ca6c82aa79c40b965d5237"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the best fitness value found up to the moment.  <a href="#a3504ed6684ca6c82aa79c40b965d5237">More...</a><br /></td></tr>
+<tr class="separator:a3504ed6684ca6c82aa79c40b965d5237"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The interface that the search methods must to implement. </p>
+<dl class="section date"><dt>Date</dt><dd>04/Mar/2017 </dd></dl>
+<dl class="section author"><dt>Author</dt><dd>Peter Frank Perroni (<a href="#" onclick="location.href='mai'+'lto:'+'pfp'+'er'+'ron'+'i@'+'gma'+'il'+'.co'+'m'; return false;">pfper<span style="display: none;">.nosp@m.</span>roni<span style="display: none;">.nosp@m.</span>@gmai<span style="display: none;">.nosp@m.</span>l.co<span style="display: none;">.nosp@m.</span>m</a>) </dd></dl>
+
+<p>Definition at line <a class="el" href="ISearch_8hpp_source.html#l00040">40</a> of file <a class="el" href="ISearch_8hpp_source.html">ISearch.hpp</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a9cee257ee19c02341da60440c5cddbd8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual int ISearch::getBestPos </td>
+          <td>(</td>
+          <td class="paramtype">double *&#160;</td>
+          <td class="paramname"><em>_x</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the best result obtained up to the moment. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">_x</td><td>A pointer to store the positions of the best result. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An ID for the best result (implementation specific). </dd></dl>
+
+<p>Implemented in <a class="el" href="classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e">PSO</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a3504ed6684ca6c82aa79c40b965d5237"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual double ISearch::getFitness </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the best fitness value found up to the moment. </p>
+<dl class="section return"><dt>Returns</dt><dd>The best fitness value found. </dd></dl>
+
+<p>Implemented in <a class="el" href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7">PSO</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a56f6b069cc3dd7f8e3f2ff38bb681639"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual int ISearch::getNEvals </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the number of fitness function evaluations performed up to the moment. </p>
+<dl class="section return"><dt>Returns</dt><dd>The number of evaluations performed. </dd></dl>
+
+<p>Implemented in <a class="el" href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba">PSO</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae3cc643bf0fbe9d9bac1d43642bbb129"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void ISearch::next </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>M</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Obtain the next improvement. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">M</td><td>The maximum number of evaluations allowed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implemented in <a class="el" href="classPSO.html#a465d956bdb86e93bc06b6fb016feb70c">PSO</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>cpp/<a class="el" href="ISearch_8hpp_source.html">ISearch.hpp</a></li>
+<li>cpp/<a class="el" href="CSMOn_8cpp_source.html">CSMOn.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/classISearch__inherit__graph.map b/doc/html/classISearch__inherit__graph.map
new file mode 100644
index 0000000..4908846
--- /dev/null
+++ b/doc/html/classISearch__inherit__graph.map
@@ -0,0 +1,3 @@
+<map id="ISearch" name="ISearch">
+<area shape="rect" id="node2" href="$classPSO.html" title="Particle Swarm Optimization. " alt="" coords="13,80,64,107"/>
+</map>
diff --git a/doc/html/classISearch__inherit__graph.md5 b/doc/html/classISearch__inherit__graph.md5
new file mode 100644
index 0000000..7e9dc87
--- /dev/null
+++ b/doc/html/classISearch__inherit__graph.md5
@@ -0,0 +1 @@
+d50fbcec178e02faa2475516a2b287db
\ No newline at end of file
diff --git a/doc/html/classISearch__inherit__graph.png b/doc/html/classISearch__inherit__graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd63ecc4848a433a9860adc666d0b56271b628ee
GIT binary patch
literal 2145
zcmeAS@N?(olHy`uVBq!ia0y~yVDM#NU?|{VVqjpn(w{Yjfq{W7$=lt9;Xep2*t>i(
z0|SScr;B4q#hkZuvVDXjr5pUc#kaZYc_~bqRdn&6f<_XPqj07|%OQSWm4>O^$1*l3
zy4+z|_Cl?Qd*XxzEKW<7O~_*5Y~^B!QEAzr$`QJ7_32HC;;fEbS6G-zsuuFh{c9Ni
zOncoCr}m4o&we^SJ7a14{`Z+PFMarp4?6^kykVSi-->b40^5~G<36U`6iZ7>+q7xZ
znY7Q_PqjH5Nh%Bq5{kR?WM$ZDYisMpix!>m>&iHG?3f7G(P{G}SXo(BmTl1%5f!c7
zmbSjf|JLNF3-h9dWo6f1&Dxkc`D93N@Z?F8gv7<C&zq+={j{za_d>}!xx)0Chri3B
zLqbDemh5`;C@DYx{mhv&SFO_88#jOM+_wqaTOPkCv^Fr9Fmd9+=bvqDZJnK*Hf`P<
zzo){{Bkjne73%GWGqba!V`GnYDJm-Z`ug55YElSVX`%=Mj#^WdIG7kDq@+%rIMLDH
z@9*PN^XUmEgTv~pZtm{cCQ=hUzC1fCy)#BnsPo)h>+q;3uEPd$85I>4y1H-Q+}zB|
z%X|NTaFar>+vF)zSR4a_gD3kfKfF3BD(czu=khic1>fJr_PQxgKi%t=Tvul||NQ#(
z>(8G#Gv#E;>C>kpl3Se$KR-LWJ^%i<@873Sn-&%lQuF7>#(n$b-oJf%db-g}AEk*`
zu3dXHd#cU(4I4HrTej@fsZ+_v`%25pmoHoP?c2Ac(Ad~m^SnDBK7Qon;SuRRx;}1i
zQCZo#)vHgRJNNC=r%xY0GBQZ;u&w#HHT$~X9E*#$Z&yD(HTA%O0}Txgd-m*k@F2lv
zf``hZ0*mGT^Vt|)eEs$I*~<&xC)~`DlacA^>f!=}T@@c69d74e8kFhd!^4n}n5bxI
zD474|)vHrU8`IL$PoF;Rt0p}E{Pwq9#~(8?lvv$e=-j@+v<?g^nDzDb85o)m-iTbq
zSGh<dDk$jC<BxqZmQAXHa&q@BUTnNtRZ$TV5>l`;hJk_Su(!8&c6N3v7%caj8x<e_
z{?)5r^>R95YMVD~5D*YxV5s>1Zf?|CKY#z@Qg3bu9A5Z%+SxSj)<cUHDQ%6iwYRr7
zGYbn2Zhq^-;E<BC#7FJ&%aX~HCku5hS-Up3wpP|rK&(4;W5kmpONIj(Cb!BoM7XlE
zvzIRe0WEFqT=(707FGYIc&PNt+fO^061BGM|G&Q%FJ7FkAAfAsy12bjv9WU}PCS@k
zz{1oRp;J~^c=F5{9Zk)|%{N!BTxn=%DAc)R*Dk5|y1Ke&bIhCtQp{%i&$H1K>z4K5
zZ%?$ozdS(0MJX^oUOsSdy>?eu*Pgw5MY&k_we8!tRBVg-R!F}3bEwoQJzf20rNHSs
zcjj#0{(V{K3SMSrW<Ni_-E)`^UpAh1)M~@&KnFj+zO}d1{DmZ>s-D08efhk-wr8LB
zw;wsVvIqYubxb|8V@Xw%&WX#*_cJnth4uXXTR%~9R>=AIdRcR+>kJHjerJ~ZyPx3k
zU9~*O^3jtcEDQ=ATUWm>pWOLl=DoEF=PxHjyngqO+0ksnqgzs!E`L_fym<2SmZ>ZZ
z1~Yk<7R}i5;z^~})Wh3~Z8(zNzLt)UHJvCtSLOUtRp<Ku_obz0pHtQ7`uFMd`zI<6
zlhV_l->zTp61ZjO%q7m#RnAYFcKyZvJe$o?fm?s=_1o^`#FSET?yPQqk5Ba4_#Fq&
zo$S1M@ndVOuSH5lS;?N8uhg7aZU$(b+>uaF^6#2lk6ZWp_11AM54XzK|7kq>>%Ll9
z&b+&M9{=t(ELyStz5m;{`zOkjtUsfEVcwOdZ%d%z%KFw*H^V>6u{wwwT=3wMO1km+
z{Da0u#`N^`MM}GNe3;?G7r56^Af>-4_Pct<)~N2INxvm7mmk_&{oStSM}q(9+&k?P
z=gir2xTLK2*|Rk3=yy{;dV(w|{%w%+;ll@u;%8^BToDOlJzS8Nm*?QXF#GJY&p%mN
zS-0h{HIm>FV3D=2yL0xeu8qx~b91e4oEGC~dGOcL!otGd-rn4NdC<x=VcP#hetvy@
z-BhYKXyu%lGgq!&ot>ZGuE4SS((A8@iHYmu_v>kEOG`@bEPWm3?ChMA^XAyGW7i6|
z_1mgPz7Z9V&t+qnF=NJo?#-JwGc-({Dk|b?YioNo%QS9j(8>xMxovZ1&z6>y>{Q^0
z<37A$|Ni|xYQM9NJOP1}YLT+Snxy`MME3=|cmMwT`@6Wf_(rWp2LoH%Uft{0uRnkO
z{I=cur>|adIZk+c+CZi~!N2(+!{H5a>+Apjs|^bai-@?<$jr{bU^H{h_U+S8KjmsY
z^yyPkOi^WJWn!YDiOHAEbxzLC$B!T9^yx`Bf8j!axw(0H`S%42792f#^w=@CoV@`W
zbLPzpTNyHO;>3PATdSHM2H%9H>t0SW`fvPLn7!@cv14vEEKzH(-QJ#GyfbD^#fJw6
z=gpgU-YzIOSXf;A`_+#7M}KU&J7wj{m5UcIj+l5b;mFaW57Ya$Y}xYYQPS<b=>`&~
zPMv!6_%Y|1MxOJvzrV%qD)CeivaSA>Q&dz`P+(wgZmz1zy87(-^Z&oR4EFIk^ZEIC
zbv3o9=xAjnr5!POX=!Q`J#TEjENhb&DB>!xWWxpn6_u8=X}^E}e*X07Odqv9Vr>uS
z%$c*;y}!s}&VvUJCQTArd@;j6>6`p^m#RtUznj|aXGf&Woa8uTGqbYqpKeGlUc8v8
z@xZ)kWtDC&E-^a_8Xw3DxF`s4oSSc-?|<6&z2jno>eQM`^R6VVulUEjWP)XJ?d8TB
Q3=9kmp00i_>zopr0NbJzfB*mh

literal 0
HcmV?d00001

diff --git a/doc/html/classPSO-members.html b/doc/html/classPSO-members.html
new file mode 100644
index 0000000..7036122
--- /dev/null
+++ b/doc/html/classPSO-members.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">PSO Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classPSO.html">PSO</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e">getBestPos</a>(double *_x)</td><td class="entry"><a class="el" href="classPSO.html">PSO</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7">getFitness</a>()</td><td class="entry"><a class="el" href="classPSO.html">PSO</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba">getNEvals</a>()</td><td class="entry"><a class="el" href="classPSO.html">PSO</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">getRandomSeed</a>()</td><td class="entry"><a class="el" href="classPSO.html">PSO</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ISearch</b>() (defined in <a class="el" href="classISearch.html">ISearch</a>)</td><td class="entry"><a class="el" href="classISearch.html">ISearch</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classPSO.html#a465d956bdb86e93bc06b6fb016feb70c">next</a>(int M)</td><td class="entry"><a class="el" href="classPSO.html">PSO</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classPSO.html#a810105b87e4f6fc026edd6b4ef484953">PSO</a>(callback_t fitnessFunction, double s1, double s2, int p, int n, double w, double c1, double c2)</td><td class="entry"><a class="el" href="classPSO.html">PSO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classPSO.html#a4866695395fb314ea732bccde6691ef3">startup</a>()</td><td class="entry"><a class="el" href="classPSO.html">PSO</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~ISearch</b>()=0 (defined in <a class="el" href="classISearch.html">ISearch</a>)</td><td class="entry"><a class="el" href="classISearch.html">ISearch</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~PSO</b>() (defined in <a class="el" href="classPSO.html">PSO</a>)</td><td class="entry"><a class="el" href="classPSO.html">PSO</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:54:05 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/classPSO.html b/doc/html/classPSO.html
new file mode 100644
index 0000000..e394c0c
--- /dev/null
+++ b/doc/html/classPSO.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: PSO Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">PSO Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Particle Swarm Optimization.  
+ <a href="classPSO.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="PSO_8hpp_source.html">PSO.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for PSO:</div>
+<div class="dyncontent">
+<div class="center"><img src="classPSO__inherit__graph.png" border="0" usemap="#PSO_inherit__map" alt="Inheritance graph"/></div>
+<map name="PSO_inherit__map" id="PSO_inherit__map">
+<area shape="rect" id="node2" href="classISearch.html" title="The interface that the search methods must to implement. " alt="" coords="5,5,72,32"/></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<div class="dynheader">
+Collaboration diagram for PSO:</div>
+<div class="dyncontent">
+<div class="center"><img src="classPSO__coll__graph.png" border="0" usemap="#PSO_coll__map" alt="Collaboration graph"/></div>
+<map name="PSO_coll__map" id="PSO_coll__map">
+<area shape="rect" id="node2" href="classISearch.html" title="The interface that the search methods must to implement. " alt="" coords="5,5,72,32"/></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a810105b87e4f6fc026edd6b4ef484953"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPSO.html#a810105b87e4f6fc026edd6b4ef484953">PSO</a> (callback_t fitnessFunction, double s1, double s2, int p, int n, double w, double c1, double c2)</td></tr>
+<tr class="memdesc:a810105b87e4f6fc026edd6b4ef484953"><td class="mdescLeft">&#160;</td><td class="mdescRight">A standard implementation of <a class="el" href="classPSO.html" title="Particle Swarm Optimization. ">PSO</a>.  <a href="#a810105b87e4f6fc026edd6b4ef484953">More...</a><br /></td></tr>
+<tr class="separator:a810105b87e4f6fc026edd6b4ef484953"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4866695395fb314ea732bccde6691ef3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4866695395fb314ea732bccde6691ef3"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPSO.html#a4866695395fb314ea732bccde6691ef3">startup</a> ()</td></tr>
+<tr class="memdesc:a4866695395fb314ea732bccde6691ef3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Startup the <a class="el" href="classPSO.html" title="Particle Swarm Optimization. ">PSO</a>. <br /></td></tr>
+<tr class="separator:a4866695395fb314ea732bccde6691ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a465d956bdb86e93bc06b6fb016feb70c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPSO.html#a465d956bdb86e93bc06b6fb016feb70c">next</a> (int M)</td></tr>
+<tr class="memdesc:a465d956bdb86e93bc06b6fb016feb70c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain the next improvement.  <a href="#a465d956bdb86e93bc06b6fb016feb70c">More...</a><br /></td></tr>
+<tr class="separator:a465d956bdb86e93bc06b6fb016feb70c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a649d2a7b444ac91bfb05d7e9f3c2e20e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e">getBestPos</a> (double *_x)</td></tr>
+<tr class="memdesc:a649d2a7b444ac91bfb05d7e9f3c2e20e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the best result obtained up to the moment (global best).  <a href="#a649d2a7b444ac91bfb05d7e9f3c2e20e">More...</a><br /></td></tr>
+<tr class="separator:a649d2a7b444ac91bfb05d7e9f3c2e20e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5c58e658a718b2f75b58b51c312f2ba"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba">getNEvals</a> ()</td></tr>
+<tr class="memdesc:aa5c58e658a718b2f75b58b51c312f2ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of fitness function evaluations performed up to the moment.  <a href="#aa5c58e658a718b2f75b58b51c312f2ba">More...</a><br /></td></tr>
+<tr class="separator:aa5c58e658a718b2f75b58b51c312f2ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9859c4126970209c8c8f534d4458dbd7"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7">getFitness</a> ()</td></tr>
+<tr class="memdesc:a9859c4126970209c8c8f534d4458dbd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the best fitness value found up to the moment.  <a href="#a9859c4126970209c8c8f534d4458dbd7">More...</a><br /></td></tr>
+<tr class="separator:a9859c4126970209c8c8f534d4458dbd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e3ed1fa7e0bb64ca9e6afcdca8d1813"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">getRandomSeed</a> ()</td></tr>
+<tr class="memdesc:a0e3ed1fa7e0bb64ca9e6afcdca8d1813"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a random number to be used as seed for the random number generator.  <a href="#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">More...</a><br /></td></tr>
+<tr class="separator:a0e3ed1fa7e0bb64ca9e6afcdca8d1813"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Particle Swarm Optimization. </p>
+<dl class="section date"><dt>Date</dt><dd>04/Mar/2017 </dd></dl>
+<dl class="section author"><dt>Author</dt><dd>Peter Frank Perroni (<a href="#" onclick="location.href='mai'+'lto:'+'pfp'+'er'+'ron'+'i@'+'gma'+'il'+'.co'+'m'; return false;">pfper<span style="display: none;">.nosp@m.</span>roni<span style="display: none;">.nosp@m.</span>@gmai<span style="display: none;">.nosp@m.</span>l.co<span style="display: none;">.nosp@m.</span>m</a>) </dd></dl>
+
+<p>Definition at line <a class="el" href="PSO_8hpp_source.html#l00053">53</a> of file <a class="el" href="PSO_8hpp_source.html">PSO.hpp</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a810105b87e4f6fc026edd6b4ef484953"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">PSO::PSO </td>
+          <td>(</td>
+          <td class="paramtype">callback_t&#160;</td>
+          <td class="paramname"><em>fitnessFunction</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>s1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>s2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>p</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>c1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>c2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>A standard implementation of <a class="el" href="classPSO.html" title="Particle Swarm Optimization. ">PSO</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">fitnessFunction</td><td>The callback reference to the fitness function. </td></tr>
+    <tr><td class="paramname">s1</td><td>The lower bound of the search space. </td></tr>
+    <tr><td class="paramname">s2</td><td>The upper bound of the search space. </td></tr>
+    <tr><td class="paramname">p</td><td>The number of particles. </td></tr>
+    <tr><td class="paramname">n</td><td>The number of dimensions of the problem. </td></tr>
+    <tr><td class="paramname">w</td><td>The acceleration coefficient. For linear decreasing weight, provide it in negative values </td></tr>
+    <tr><td class="paramname">c1</td><td>The cognitive knowledge rate. </td></tr>
+    <tr><td class="paramname">c2</td><td>The social knowledge rate. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="PSO_8cpp_source.html#l00045">45</a> of file <a class="el" href="PSO_8cpp_source.html">PSO.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a649d2a7b444ac91bfb05d7e9f3c2e20e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int PSO::getBestPos </td>
+          <td>(</td>
+          <td class="paramtype">double *&#160;</td>
+          <td class="paramname"><em>_x</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the best result obtained up to the moment (global best). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">_x</td><td>A pointer to store the positions of the global best. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The index of the particle that found the global best position. </dd></dl>
+
+<p>Implements <a class="el" href="classISearch.html#a9cee257ee19c02341da60440c5cddbd8">ISearch</a>.</p>
+
+<p>Definition at line <a class="el" href="PSO_8cpp_source.html#l00160">160</a> of file <a class="el" href="PSO_8cpp_source.html">PSO.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9859c4126970209c8c8f534d4458dbd7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">double PSO::getFitness </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the best fitness value found up to the moment. </p>
+<dl class="section return"><dt>Returns</dt><dd>The best fitness value found. </dd></dl>
+
+<p>Implements <a class="el" href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">ISearch</a>.</p>
+
+<p>Definition at line <a class="el" href="PSO_8cpp_source.html#l00180">180</a> of file <a class="el" href="PSO_8cpp_source.html">PSO.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa5c58e658a718b2f75b58b51c312f2ba"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int PSO::getNEvals </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get the number of fitness function evaluations performed up to the moment. </p>
+<dl class="section return"><dt>Returns</dt><dd>The number of evaluations performed. </dd></dl>
+
+<p>Implements <a class="el" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">ISearch</a>.</p>
+
+<p>Definition at line <a class="el" href="PSO_8cpp_source.html#l00170">170</a> of file <a class="el" href="PSO_8cpp_source.html">PSO.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0e3ed1fa7e0bb64ca9e6afcdca8d1813"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int PSO::getRandomSeed </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get a random number to be used as seed for the random number generator. </p>
+<p>This implementation can be adapted/changed as necessary.</p>
+<dl class="section return"><dt>Returns</dt><dd>A random seed. </dd></dl>
+
+<p>Definition at line <a class="el" href="PSO_8cpp_source.html#l00191">191</a> of file <a class="el" href="PSO_8cpp_source.html">PSO.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a465d956bdb86e93bc06b6fb016feb70c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void PSO::next </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>M</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Obtain the next improvement. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">M</td><td>The maximum number of evaluations allowed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implements <a class="el" href="classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129">ISearch</a>.</p>
+
+<p>Definition at line <a class="el" href="PSO_8cpp_source.html#l00120">120</a> of file <a class="el" href="PSO_8cpp_source.html">PSO.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>cpp/<a class="el" href="PSO_8hpp_source.html">PSO.hpp</a></li>
+<li>cpp/<a class="el" href="PSO_8cpp_source.html">PSO.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/classPSO__coll__graph.map b/doc/html/classPSO__coll__graph.map
new file mode 100644
index 0000000..2388f63
--- /dev/null
+++ b/doc/html/classPSO__coll__graph.map
@@ -0,0 +1,3 @@
+<map id="PSO" name="PSO">
+<area shape="rect" id="node2" href="$classISearch.html" title="The interface that the search methods must to implement. " alt="" coords="5,5,72,32"/>
+</map>
diff --git a/doc/html/classPSO__coll__graph.md5 b/doc/html/classPSO__coll__graph.md5
new file mode 100644
index 0000000..cd926d1
--- /dev/null
+++ b/doc/html/classPSO__coll__graph.md5
@@ -0,0 +1 @@
+85e9ae14524a131ba043fef49841dcdd
\ No newline at end of file
diff --git a/doc/html/classPSO__coll__graph.png b/doc/html/classPSO__coll__graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..7711b45581b74ee57876fea9173df2c6f165ebc0
GIT binary patch
literal 2167
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
A`2YX_

literal 0
HcmV?d00001

diff --git a/doc/html/classPSO__inherit__graph.map b/doc/html/classPSO__inherit__graph.map
new file mode 100644
index 0000000..2388f63
--- /dev/null
+++ b/doc/html/classPSO__inherit__graph.map
@@ -0,0 +1,3 @@
+<map id="PSO" name="PSO">
+<area shape="rect" id="node2" href="$classISearch.html" title="The interface that the search methods must to implement. " alt="" coords="5,5,72,32"/>
+</map>
diff --git a/doc/html/classPSO__inherit__graph.md5 b/doc/html/classPSO__inherit__graph.md5
new file mode 100644
index 0000000..cd926d1
--- /dev/null
+++ b/doc/html/classPSO__inherit__graph.md5
@@ -0,0 +1 @@
+85e9ae14524a131ba043fef49841dcdd
\ No newline at end of file
diff --git a/doc/html/classPSO__inherit__graph.png b/doc/html/classPSO__inherit__graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..7711b45581b74ee57876fea9173df2c6f165ebc0
GIT binary patch
literal 2167
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
A`2YX_

literal 0
HcmV?d00001

diff --git a/doc/html/classes.html b/doc/html/classes.html
new file mode 100644
index 0000000..84db34e
--- /dev/null
+++ b/doc/html/classes.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Data Structure Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structure Index</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter__">_</a></div>
+<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter__"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;_&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="struct__point.html">_point</a>&#160;&#160;&#160;</td></tr>
+<tr><td></td></tr>
+<tr><td valign="top"><a class="el" href="classCSMOn.html">CSMOn</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classISearch.html">ISearch</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classPSO.html">PSO</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct__Param.html">_Param</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter__">_</a></div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/closed.png b/doc/html/closed.png
new file mode 100644
index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5
GIT binary patch
literal 132
zcmeAS@N?(olHy`uVBq!ia0y~yVBiE{4mJh`h6fYb1Q-|?yggkULn;{G-p%E8P~>R4
z=$<|EB$N38-2}DbmnFr_%O)K7`0vvPK}LtC*|iL-j2e1dIRjJ=#-IMT-)|GIo|S=1
k_R{V{v-v8NIIqptTqq(?amn;60|Nttr>mdKI;Vst0N5uiMgRZ+

literal 0
HcmV?d00001

diff --git a/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79.html b/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79.html
new file mode 100644
index 0000000..81bdf95
--- /dev/null
+++ b/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: python Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_7837fde3ab9c1fb2fc5be7b717af8d79.html">python</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">python Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Directory dependency graph for python:</div>
+<div class="dyncontent">
+<div class="center"><img src="dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.png" border="0" usemap="#dir__7837fde3ab9c1fb2fc5be7b717af8d79__dep" alt="python"/></div>
+<map name="dir__7837fde3ab9c1fb2fc5be7b717af8d79__dep" id="dir__7837fde3ab9c1fb2fc5be7b717af8d79__dep">
+<area shape="rect" id="node1" href="dir_7837fde3ab9c1fb2fc5be7b717af8d79.html" title="python" alt="" coords="5,5,77,53"/></map>
+</div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:CSMOn__wrapper_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CSMOn__wrapper_8cpp.html">CSMOn_wrapper.cpp</a> <a href="CSMOn__wrapper_8cpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.map b/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.map
new file mode 100644
index 0000000..672d4a3
--- /dev/null
+++ b/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.map
@@ -0,0 +1,3 @@
+<map id="python" name="python">
+<area shape="rect" id="node1" href="dir_7837fde3ab9c1fb2fc5be7b717af8d79.html" title="python" alt="" coords="5,5,77,53"/>
+</map>
diff --git a/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.md5 b/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.md5
new file mode 100644
index 0000000..99f66f3
--- /dev/null
+++ b/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.md5
@@ -0,0 +1 @@
+b1eb1efbc66dfb4c203863d5f3de367d
\ No newline at end of file
diff --git a/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.png b/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc9b4962bd24220944c78d98e266d3903a8d9ae3
GIT binary patch
literal 1199
zcmeAS@N?(olHy`uVBq!ia0y~yU<hVlV6f(3V_;xl7u{ygz`($k<n8Xl@E-&h>|H*Y
zfq^B()5S5QV$Rz+^&ZmUG6(E4C)K;f_(oZu?aDB@x|M@jRM*Pv^@NR4)^B@Kdqe*i
z{=cBrdg)lAWQfazi<^wD<!))_+uj+N-hK7}=OeY)?WGZ?7L;7hShz0MdU0&Fq14%b
z0zvgIx=-g`{A5>9@crK2_rLe?zkfF==3PkK`s>{;EZ=w=&poJgIwjIEMN{DHp{A23
zJ!j3DHDksM4i~%EOq*}|L`B_t#PyyjDmr>^L(H^D6RERKxpC{S-`<mvR%Ii{5TjQ)
z@w<C<wXv&fW!>v1mca@^%N&;YG<wWrnrOtTl*;7-F<KLc!~|3Q%LxGwOTMvN^)65H
zJt-qqBqY1n@<OJKakkg9GiP}8u6r!FT#+U+@ny-kWP=q27J3tANF3gl8@=JCR^jfu
zH*%)RScSZ~U0(A?(CsmI%>H}sZf-^lhK372KPoLR7m}CvO<6K8c=@Z^r~Gm~fpKvj
zC129Y-rP9#@v(cs?)3Moq<FO6d|U77RmD2_<bju$dA)c_<+}4$bUwMW(?2uoRYJ}g
z*T|Wod+UTFBi|Q&NZ^w@|2)G)N~Vw7#briEclFeB=d@K+X6&r|{BDm$Z0!BZmoK}Q
zf9Dqwd9!%IgIb<8Um4q|gL|vXU%vV^^?3hrP2F1lxq2PR$L&}iTv}RYWnKU5(NVEg
ztGrI0*LPfRu3;AE%K!P+t^STKBVqaZF2269W!1`_o|+jZQF`(J1RJJJ%Rh1YwENN^
zUCHH(9&uR33hXZ5&wSv<4UOR7;4NEC1LOZ23JR)i%kN*j>laH|_2Tuho}QM{=4_km
z>lqmqFV<sqU%lbX3XRSAcXRquD}I<|ZJlLXUG(BbMsmuN_^PU1C(hb#$eD8?;Bn3-
z>3K`4|Npc1@%I;&lzggfJadtx+`hNB`M782F29=9+LNv-GS$-H!}U2|?Q5HF?>3*_
z*Y`dnKVQw#Qgm_Q>rI7!&fc0ZVS2#ot314xwW-a`%o4r&=QFqOx*qOYy?WicLoeSf
zU;o}bE8G4+(nh8Y#m}>S{HrrEEE<na+P~uNj~|Ogle4!*ZQA^K!%eN7rP&jt&HpV}
zw=V5y<T{nEQ)kZFI+T5z9ifvydEP&<cK&eY1!1dCo;maI;o<)$PThKb+up{e>B*Cj
zq~yc%wCbD>tGBdCdHVaSsH-<`*}@Yq-{^30_0FqNJy)aNZ1-DlK4Ip}UO(|KDw4fy
z?T?pN{?`37``n$k4-#zC&(%CN|5x;Oic{dse+9eMcN9O*my+K9<ju|e@ZHs}flmzh
zxvC}}I%KrJG<^NPL+fHWBi6buS+;MX%XdcSi8CdIHnmPxxBnbHebOf@zvY|ee`h*6
z>sQ{sdqm|80Z68q_Q&?~pP%|+#{H#-w`T9xkKOrU;mdpX;?_s4<@;fLH@lLPpa1*s
xJv+Vj*}6%5dTXczHJted^V}oFho=5#?7PN%#h88h69xtb22WQ%mvv4FO#oRSGUfmP

literal 0
HcmV?d00001

diff --git a/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8.html b/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8.html
new file mode 100644
index 0000000..3ce54b9
--- /dev/null
+++ b/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: cpp Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_df511e5bd85cec96854b39d5e1c27aa8.html">cpp</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">cpp Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Directory dependency graph for cpp:</div>
+<div class="dyncontent">
+<div class="center"><img src="dir_df511e5bd85cec96854b39d5e1c27aa8_dep.png" border="0" usemap="#dir__df511e5bd85cec96854b39d5e1c27aa8__dep" alt="cpp"/></div>
+<map name="dir__df511e5bd85cec96854b39d5e1c27aa8__dep" id="dir__df511e5bd85cec96854b39d5e1c27aa8__dep">
+<area shape="rect" id="node1" href="dir_df511e5bd85cec96854b39d5e1c27aa8.html" title="cpp" alt="" coords="5,5,77,53"/></map>
+</div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:CSMOn_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>CSMOn.cpp</b> <a href="CSMOn_8cpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:CSMOn_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>CSMOn.hpp</b> <a href="CSMOn_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ISearch_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>ISearch.hpp</b> <a href="ISearch_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:PSO_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>PSO.cpp</b> <a href="PSO_8cpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:PSO_8hpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>PSO.hpp</b> <a href="PSO_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.map b/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.map
new file mode 100644
index 0000000..19d0c85
--- /dev/null
+++ b/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.map
@@ -0,0 +1,3 @@
+<map id="cpp" name="cpp">
+<area shape="rect" id="node1" href="dir_df511e5bd85cec96854b39d5e1c27aa8.html" title="cpp" alt="" coords="5,5,77,53"/>
+</map>
diff --git a/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.md5 b/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.md5
new file mode 100644
index 0000000..d7bea35
--- /dev/null
+++ b/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.md5
@@ -0,0 +1 @@
+1abb9bb70849c88a46921d6545cf4913
\ No newline at end of file
diff --git a/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.png b/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.png
new file mode 100644
index 0000000000000000000000000000000000000000..f570176739c35fab7a756cf4e568f7b04eb7a4dc
GIT binary patch
literal 759
zcmeAS@N?(olHy`uVBq!ia0y~yU<hVlV6f(3V_;xl7u{ygz`($k<n8Xl@E-&h>|H*Y
zfq`j_r;B4q#hkad?LDLuC60fLpS7k;K<S90_l|7kvrpzbZFg9D!M90nX}!R7r72<J
zhARV9xExodY-|bA^g1|0U_)lM_(JbCCrvgHCNsIKS3+M+m~i6Y?Ue^r(mS56%vU<k
z&ewC^dQZ*Cmj&-5TLhSToc?sZk&RK4nJjQzC1v%$qbE;tF1o1Eb#zhB-z_Yzfe*e`
zWwS5xQkp2h@MBf+&75toa-28>SN}|tYGY)uuzFPgDec<zWC_WOKIwnVL1r8=<Sg`Y
z0vksR)3Y~Ig3W26_=k!)0V39J?(z?R{4i&5xV||fe|tjmW813g^^T#|29`fXmIkeS
z=cBgLP<f)kq?0VyuGuNh{L_?ECjR;JX3^|v)8Z7R{&rlw%75d|pPmAXD;Ip&RvLzf
z-BS?YShV^y^Y-6tV&eA~t$!bObXLL#)fhe2yLZhEO-;Ki{=_;POJ>P^jaw3vC$Bd>
z=---Ec`H`!PCEN?=c1V74<D{?OEdELn`R|5*TUjQ<i9<8=dRm%_WQTGIln5!`P|c;
zjU|^HyRxNy#>~n-pEUNFXZY0A<|$0Sy*}dccl+jb=^M9x<vp0d;OxvVHS46pS2KC(
z&&u=9AAY{O*-5eg-@n~6=FM9jVQf($&&<3%P~*wN&vy_1*s;IHdiL3rO(F7Sy+@NS
znE3wsC=q*p(Q<dgyY72${{Qy9qUWS!qTL&>m6^%gw#FX)@ZoXs`IM|%Gs>#j#l)1J
z&pUZ#i($0jaTQ`BVD3+zjLM&1UEeKEU2^&UdAYFtCUd=(wp`7c`p>W2INoph<uA3L
wXR&9!ng5a5)C(N1Da-=X_jY<edM$r4;^gYH=YCr<FfcH9y85}Sb4q9e09Q*`E&u=k

literal 0
HcmV?d00001

diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css
new file mode 100644
index 0000000..0a8f962
--- /dev/null
+++ b/doc/html/doxygen.css
@@ -0,0 +1,1440 @@
+/* The standard CSS for doxygen 1.8.7 */
+
+body, table, div, p, dl {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font: 400 14px/28px Roboto,sans-serif;
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #879ECB;
+	color: #354C7B;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #ffffff;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+	background-color: #FBFCFD;
+	border: 1px solid #C4CFE5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+div.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #ffffff;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        -moz-border-radius-topleft: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+        -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        background-image:url('nav_g.png');
+        background-repeat:repeat-x;
+        background-color: #FFFFFF;
+        /* opera specific markup */
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #728DC1;
+        border-top:1px solid #5373B4;
+        border-left:1px solid #5373B4;
+        border-right:1px solid #C4CFE5;
+        border-bottom:1px solid #C4CFE5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #9CAFD4;
+        border-bottom: 1px solid #9CAFD4;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+	padding-top: 3px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F7F8FB;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+.arrow {
+    color: #9CAFD4;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    cursor: pointer;
+    font-size: 80%;
+    display: inline-block;
+    width: 16px;
+    height: 22px;
+}
+
+.icon {
+    font-family: Arial, Helvetica;
+    font-weight: bold;
+    font-size: 12px;
+    height: 14px;
+    width: 16px;
+    display: inline-block;
+    background-color: #728DC1;
+    color: white;
+    text-align: center;
+    border-radius: 4px;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+
+.icona {
+    width: 24px;
+    height: 22px;
+    display: inline-block;
+}
+
+.iconfopen {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('ftv2folderopen.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.iconfclosed {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('ftv2folderclosed.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.icondoc {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('ftv2doc.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+table.directory {
+    font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        /*width: 100%;*/
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+        padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+        margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+        margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	background-position: 0 -5px;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.note
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00D000;
+}
+
+dl.deprecated
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #505050;
+}
+
+dl.todo
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 20px 10px 10px;
+        width: 200px;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+	cursor: default;
+	white-space: nowrap;
+	background-color: white;
+	border: 1px solid gray;
+	border-radius: 4px 4px 4px 4px;
+	box-shadow: 1px 1px 7px gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
diff --git a/doc/html/doxygen.png b/doc/html/doxygen.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1
GIT binary patch
literal 3779
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

literal 0
HcmV?d00001

diff --git a/doc/html/dynsections.js b/doc/html/dynsections.js
new file mode 100644
index 0000000..1e6bf07
--- /dev/null
+++ b/doc/html/dynsections.js
@@ -0,0 +1,104 @@
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+   content.hide();
+   summary.show();
+   $(linkObj).addClass('closed').removeClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+   content.show();
+   summary.hide();
+   $(linkObj).removeClass('closed').addClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ } 
+ return false;
+}
+
+function updateStripes()
+{
+  $('table.directory tr').
+       removeClass('even').filter(':visible:even').addClass('even');
+}
+
+function toggleLevel(level)
+{
+  $('table.directory tr').each(function() {
+    var l = this.id.split('_').length-1;
+    var i = $('#img'+this.id.substring(3));
+    var a = $('#arr'+this.id.substring(3));
+    if (l<level+1) {
+      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+      a.html('&#9660;');
+      $(this).show();
+    } else if (l==level+1) {
+      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+      a.html('&#9658;');
+      $(this).show();
+    } else {
+      $(this).hide();
+    }
+  });
+  updateStripes();
+}
+
+function toggleFolder(id)
+{
+  // the clicked row
+  var currentRow = $('#row_'+id);
+
+  // all rows after the clicked row
+  var rows = currentRow.nextAll("tr");
+
+  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
+  // only match elements AFTER this one (can't hide elements before)
+  var childRows = rows.filter(function() { return this.id.match(re); });
+
+  // first row is visible we are HIDING
+  if (childRows.filter(':first').is(':visible')===true) {
+    // replace down arrow by right arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    currentRowSpans.filter(".arrow").html('&#9658;');
+    rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+  } else { // we are SHOWING
+    // replace right arrow by down arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+    currentRowSpans.filter(".arrow").html('&#9660;');
+    // replace down arrows by right arrows for child rows
+    var childRowsSpans = childRows.find("span");
+    childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    childRowsSpans.filter(".arrow").html('&#9658;');
+    childRows.show(); //show all children
+  }
+  updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+  var rows = $('tr.inherit.'+id);
+  var img = $('tr.inherit_header.'+id+' img');
+  var src = $(img).attr('src');
+  if (rows.filter(':first').is(':visible')===true) {
+    rows.css('display','none');
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+  } else {
+    rows.css('display','table-row'); // using show() causes jump in firefox
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+  }
+}
+
+
+$(document).ready(function() {
+  $('.code,.codeRef').each(function() {
+    $(this).data('powertip',$('#'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
+    $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
+  });
+});
diff --git a/doc/html/files.html b/doc/html/files.html
new file mode 100644
index 0000000..cb57622
--- /dev/null
+++ b/doc/html/files.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: File List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">File List</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_df511e5bd85cec96854b39d5e1c27aa8.html" target="_self">cpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="CSMOn_8cpp_source.html"><span class="icondoc"></span></a><b>CSMOn.cpp</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="CSMOn_8hpp_source.html"><span class="icondoc"></span></a><b>CSMOn.hpp</b></td><td class="desc"></td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ISearch_8hpp_source.html"><span class="icondoc"></span></a><b>ISearch.hpp</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="PSO_8cpp_source.html"><span class="icondoc"></span></a><b>PSO.cpp</b></td><td class="desc"></td></tr>
+<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="PSO_8hpp_source.html"><span class="icondoc"></span></a><b>PSO.hpp</b></td><td class="desc"></td></tr>
+<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')">&#160;</span><a class="el" href="dir_7837fde3ab9c1fb2fc5be7b717af8d79.html" target="_self">python</a></td><td class="desc"></td></tr>
+<tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="CSMOn__wrapper_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="CSMOn__wrapper_8cpp.html" target="_self">CSMOn_wrapper.cpp</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/fitnessFunction_8py_source.html b/doc/html/fitnessFunction_8py_source.html
new file mode 100644
index 0000000..82a3687
--- /dev/null
+++ b/doc/html/fitnessFunction_8py_source.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: python/fitnessFunction.py Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_7837fde3ab9c1fb2fc5be7b717af8d79.html">python</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">fitnessFunction.py</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment"># Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"># Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"># of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"># in the Software without restriction, including without limitation the rights</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"># to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"># copies of the Software, and to permit persons to whom the Software is</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"># furnished to do so, subject to the following conditions:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"># The above copyright notice and this permission notice shall be included in</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"># all copies or substantial portions of the Software.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"># Additionally, if used for any scientific purpose, the following reference</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"># must be cited:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"># </span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"># Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"># 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"># Algorithms. In Proceedings of GECCO &#39;17, Berlin, Germany, July 15-19, 2017,</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"># pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"># THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"># IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"># FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"># AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"># LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"># OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"># THE SOFTWARE.</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"># fitnessFunction.cpp</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"># Created on: 02/Jul/2017</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"># Author: Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment"># This module defines the fitness function that will be called from CSMOn C++ API.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">import</span> math</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment"># Fitness Function.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">def </span>f(x, n):</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="comment"># Put your fitness function here.</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    PI = 3.141592653589793238462643383279</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    s = 0</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordflow">for</span> i <span class="keywordflow">in</span> range(0, n):</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        s += x[i]*x[i] - 10 * math.cos(2 * PI * x[i])</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keywordflow">return</span> 10 * n + s</div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:11:46 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/ftv2blank.png b/doc/html/ftv2blank.png
new file mode 100644
index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48
GIT binary patch
literal 86
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU=ZVAV_;x7xk{#nfq_BR)5S5Qg7NL$jSLJ7
o42L)T2<A`r@2_xB5a3{uV`H7hz__APvKA!g>FVdQ&MBb@0Ppk@y8r+H

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2doc.png b/doc/html/ftv2doc.png
new file mode 100644
index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501
GIT binary patch
literal 746
zcmeAS@N?(olHy`uVBq!ia0y~yV31&7U=ZVAV_;yoRU6a6z`(T8)5S5Qg7NKKU;p4}
ziPrh^ihm{A>qbOr1c<r_nKa2OII@K&l_n(daGIN!Kk;xoCh2_oN@M+@{}1#N%JN$n
z1v?xAm_HSE2P|;lUi<qltMCg;3j>~a50+@}UVgXodffY{_m;uoJ7d@^j3pS-JB`&h
zF!((>ygX;;j`*bY1q<Fk{e3K~@y<25g$?ZUuPd#&))vu_5_^I50gLhElMFJ4kDRHW
zS<yRx!F}HcbE3s<o(BhHmnBcnIHBG;b4J|JT*;XkH_W*b*l&x?T*iHP#et_q4-03r
zh)$fdPf;u-G1YtizhhTtSe?<@9DiMQ@}n1xnNs$iEYng20<@eM&FAlb`bAE0=Uu_{
zBD2#)X8GPpuN(h8{_v&9bIR$Ejz6n<R#bfcW;^@mBDGG9RPFnpk7WO4IG*tO;GHDB
z$vXrtu!dhRH(0tM>tdDP%r!MD!(AV5Wn7fF-YoiCM4Myw<)2#mb3|8&bvB&rk6gRp
zf7qn@<<m+xWgW6J4Cm4kW!+o9eFJ|0t2=*R)&CXxuIbf0^N&AD%<nqb81~Cb`o;d4
zOAG~7guVnV7Yf&z#<1$a3Wu)Kre^yNT)88q+bg(FC->EkbNbI-?3|_`^r^^HbZLlI
zutr!Ko5eTF(n-8m7qgeo{`omkn%VZOP4%UPp*?)xi`HwOe465N-c98N<A&D7OfUB*
zRQ=n1?$<ZJiCgcilQRf3UR)O+clz_A^?tS;3}po&4>tPDoflHu@h-ct?NY9d{GM}{
z?V~dGM=X9H|L^Y7Xw7EM1ore-hZCix<F9Bvxnh){Zad-Y7PtRKu8$4|{Nnn)dv=cP
z1dHx)hO!N+6GA)+Pwux-TJqkVf8VhRk80&(*H$N9@w$4Cxm|pEZg<Oq=N~z|i~m3P
z7}mvbW8sGFzK<@+#`W?rha8-yaCdgm())Yae&qi7A3xKcVO98%4d0bZ`571(7(8A5
KT-G@yGywoozFao|

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2folderclosed.png b/doc/html/ftv2folderclosed.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66
GIT binary patch
literal 616
zcmeAS@N?(olHy`uVBq!ia0y~yV31&7U=ZVAV_;yoRU6a6z`&&M>Eakt!T2`T*Z+!x
zMBS}lr8g$z6vTdG-mg6SXly{_1Xt&d7|Wl`dnzy9Pq=pE|AWT=2ToRee#E%QSwT&}
zw(!CcfnN5-jMK}ap3g1YW}MqN;YM?N**u@$e$Q*~eXqSYcW;!V0E0u`21W({Cw>K7
z43jE8|MTAP@uPG@#ht7v8!U=1GBr$AnA|X@KVDjHPxPU;&z8S;VPH^inkrIRnX3I`
z&u?yXWu_v(`8n_ZaAa%o>@&EqCO&0#yvBo%ho^0P@TJO@;bX<uvgO}1R(4kHY?yT;
zKv(q1=O?|B&a5i^yGKQScZ|zpFTv#LPA2R59^bvDCuX(ye829+^Y?2dw|4oszTNdt
zL3#S`hr8qt2%k^)vu2p!)YV}2{_n>pYv#0mbC`7D>Bj;!>6saJ1(pm;Cd_1Xbv?Ic
z#ko@xl@^pPotwwrpc15HU%gYzW`<nr>sHkOzmi8Pog(+QZT$66JI>~%l+tpe1-+|W
z3a1oqiCMGy(oB}bX$(CRS33T0;8(h`b-~P6^Irrku4R-^c70GKQ~g`dB2(dA!RA*Q
zjxOac%h+96Y+kKNc3mc>!t0T8>WCQ6lwLinn>_A)y37m-Jw8o;_o*-HJYuuNS;lkK
zUhA93L!wePX4YEUz4&s!sp`75_x0r#C1MObOZvD9Wu}N(m6rW4n|gQlnoT#$Tp#6C
zxA<;%i%8#dCM`<z+T0Zzc6Msb7QTPx{>qI%S6a=^nig63;?8SjV}a-AgBgB=|M>s^
eVv+g}?khiKem3!}T*$z{z~JfX=d#Wzp$P!>ZX#j;

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2folderopen.png b/doc/html/ftv2folderopen.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6c7f676a3b3ef8c2c307d319dff3c6a604eb227
GIT binary patch
literal 597
zcmeAS@N?(olHy`uVBq!ia0y~yV31&7U=ZVAV_;yoRU6a6z`!Kq>Eakt!T2`TKL2un
zz<<lkStgkqWUYGzGBYP{>x}AR=$zQt$$#L0c|y{QD>v87z44Pz$Ky??`WF?k30jRI
zTVtC-7P`m<+&W@be!jL-)_S3{wL;?l%X9C~|9$uUyLo%E90eE-to3AL$P4~g+hEDy
zG5K<zbdCMngWs8XY~xQI>uOxvwv_QeX{r{3_4-KHC&iIZo;fX=zyIHn>5GeRiZbq%
z+IzF7jpyWQ@!2a6L>@0>P*8L~zF(&7O#9A@H`dMK-q6!@#cd};ZK2%KB)-`1O#J3=
zw=)=M-b$Ih@Batg7rSZ$(w;277FlgF^Wq_g+F#GUd^EcK=gM@kkH4P!^>{WNJl>rA
z{NOIt#cM*lHh6B%l}_IHg>}Z$Jy(v+{d2<Z<&KJfC6>ojwzB=@_J0=Us`WK=%bBL<
zBFgiwcT9c%yGYg{M}^@>!2co-hQvh4<I+nxH_c9oT37U9;^RUF&lVPj{5>*1LSp)K
zN>*hF7;(tDIabKCm+7+k%$F><-XmMU6>`K=pDSi*ahmwsz1BQgVVNP#FMch_k4r8%
z`e)B?>EFB0C&f-V)UarY4S!qWzpHaLO}>Abc}C^r#eB;x`>lH3{nS3tzge!~;{zR6
z?s;jO&0hL3bo3r^UF;oNdnZoFT6)`!yr@N`_eIu*2AfRhy}0Ie(%X4{+w^W_FT0Ty
za^%}CRk^LJ9&ygiTpxDi)ZI_ZXY!o*Db27$^XGqe=7yP{*mrqxID{;yn8Luoz~JfX
K=d#Wzp$PzT5g5Y&

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2lastnode.png b/doc/html/ftv2lastnode.png
new file mode 100644
index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48
GIT binary patch
literal 86
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU=ZVAV_;x7xk{#nfq_BR)5S5Qg7NL$jSLJ7
o42L)T2<A`r@2_xB5a3{uV`H7hz__APvKA!g>FVdQ&MBb@0Ppk@y8r+H

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2link.png b/doc/html/ftv2link.png
new file mode 100644
index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501
GIT binary patch
literal 746
zcmeAS@N?(olHy`uVBq!ia0y~yV31&7U=ZVAV_;yoRU6a6z`(T8)5S5Qg7NKKU;p4}
ziPrh^ihm{A>qbOr1c<r_nKa2OII@K&l_n(daGIN!Kk;xoCh2_oN@M+@{}1#N%JN$n
z1v?xAm_HSE2P|;lUi<qltMCg;3j>~a50+@}UVgXodffY{_m;uoJ7d@^j3pS-JB`&h
zF!((>ygX;;j`*bY1q<Fk{e3K~@y<25g$?ZUuPd#&))vu_5_^I50gLhElMFJ4kDRHW
zS<yRx!F}HcbE3s<o(BhHmnBcnIHBG;b4J|JT*;XkH_W*b*l&x?T*iHP#et_q4-03r
zh)$fdPf;u-G1YtizhhTtSe?<@9DiMQ@}n1xnNs$iEYng20<@eM&FAlb`bAE0=Uu_{
zBD2#)X8GPpuN(h8{_v&9bIR$Ejz6n<R#bfcW;^@mBDGG9RPFnpk7WO4IG*tO;GHDB
z$vXrtu!dhRH(0tM>tdDP%r!MD!(AV5Wn7fF-YoiCM4Myw<)2#mb3|8&bvB&rk6gRp
zf7qn@<<m+xWgW6J4Cm4kW!+o9eFJ|0t2=*R)&CXxuIbf0^N&AD%<nqb81~Cb`o;d4
zOAG~7guVnV7Yf&z#<1$a3Wu)Kre^yNT)88q+bg(FC->EkbNbI-?3|_`^r^^HbZLlI
zutr!Ko5eTF(n-8m7qgeo{`omkn%VZOP4%UPp*?)xi`HwOe465N-c98N<A&D7OfUB*
zRQ=n1?$<ZJiCgcilQRf3UR)O+clz_A^?tS;3}po&4>tPDoflHu@h-ct?NY9d{GM}{
z?V~dGM=X9H|L^Y7Xw7EM1ore-hZCix<F9Bvxnh){Zad-Y7PtRKu8$4|{Nnn)dv=cP
z1dHx)hO!N+6GA)+Pwux-TJqkVf8VhRk80&(*H$N9@w$4Cxm|pEZg<Oq=N~z|i~m3P
z7}mvbW8sGFzK<@+#`W?rha8-yaCdgm())Yae&qi7A3xKcVO98%4d0bZ`571(7(8A5
KT-G@yGywoozFao|

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2mlastnode.png b/doc/html/ftv2mlastnode.png
new file mode 100644
index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22
GIT binary patch
literal 246
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU=ZVAV_;x7xk{#nfq`MKr;B4q1>@Vhihj(F
z5=TGEFKK_k5wqa?1D?=ahXjEurkR(76J85s@NhOUGq5u>9t}5-mE%lWepi;Uqf71m
z{OS2=-_EA&i>$w5!uw}d@(=FzhI$T(E!{^y{WLCPvfUHg-?n_KaEwzcCzmLr=l*V6
zC-&_#>zx*^v);jxy=5y`_=dB74rP`7XD?ned3^snGwa;g6OSU_JYHVoTgx1K<yM89
zSt3vE7q*n^?KdL-u>M+Mx1^?q-;~e(vK>ne<2)xN=7sOn7cwv~FnGH9xvX<aXaWET
CgkQ4&

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2mnode.png b/doc/html/ftv2mnode.png
new file mode 100644
index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22
GIT binary patch
literal 246
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU=ZVAV_;x7xk{#nfq`MKr;B4q1>@Vhihj(F
z5=TGEFKK_k5wqa?1D?=ahXjEurkR(76J85s@NhOUGq5u>9t}5-mE%lWepi;Uqf71m
z{OS2=-_EA&i>$w5!uw}d@(=FzhI$T(E!{^y{WLCPvfUHg-?n_KaEwzcCzmLr=l*V6
zC-&_#>zx*^v);jxy=5y`_=dB74rP`7XD?ned3^snGwa;g6OSU_JYHVoTgx1K<yM89
zSt3vE7q*n^?KdL-u>M+Mx1^?q-;~e(vK>ne<2)xN=7sOn7cwv~FnGH9xvX<aXaWET
CgkQ4&

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2node.png b/doc/html/ftv2node.png
new file mode 100644
index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48
GIT binary patch
literal 86
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU=ZVAV_;x7xk{#nfq_BR)5S5Qg7NL$jSLJ7
o42L)T2<A`r@2_xB5a3{uV`H7hz__APvKA!g>FVdQ&MBb@0Ppk@y8r+H

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2plastnode.png b/doc/html/ftv2plastnode.png
new file mode 100644
index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152
GIT binary patch
literal 229
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU=ZVAV_;x7xk{#nfq`L-r;B4q1>@VfwtS3%
zB5wQ>Z?G+OS$!q@2%m^mr`yT^?;Fjw9AOU2uWshOY7y*F@$rm7Z&F@S(dVw}PkZ<8
zo20^d;Cu*UR{+<7Z+jxv_>138F?;of@zV#T4N{wew`}wmUFy`JvG744^GnTH+L4S$
zIyf(_IvsTKf?Ze%3&+Xgj$BKPSIjL>1m`TxZqju)v0V3#%4eP=&P&l5sl5BW3v|Em
k$>cEAIRBLX?^wVd<gVUdbarhb0|Nttr>mdKI;Vst0IVihlK=n!

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2pnode.png b/doc/html/ftv2pnode.png
new file mode 100644
index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152
GIT binary patch
literal 229
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU=ZVAV_;x7xk{#nfq`L-r;B4q1>@VfwtS3%
zB5wQ>Z?G+OS$!q@2%m^mr`yT^?;Fjw9AOU2uWshOY7y*F@$rm7Z&F@S(dVw}PkZ<8
zo20^d;Cu*UR{+<7Z+jxv_>138F?;of@zV#T4N{wew`}wmUFy`JvG744^GnTH+L4S$
zIyf(_IvsTKf?Ze%3&+Xgj$BKPSIjL>1m`TxZqju)v0V3#%4eP=&P&l5sl5BW3v|Em
k$>cEAIRBLX?^wVd<gVUdbarhb0|Nttr>mdKI;Vst0IVihlK=n!

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2splitbar.png b/doc/html/ftv2splitbar.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e
GIT binary patch
literal 314
zcmeAS@N?(olHy`uVBq!ia0y~yU|?flU}4~3VqjqK-LYSgfq{|H)5S5Qg7NL$g<j5y
z673(KYs}zz-K@Ith6y)!(#8`r&TeZoo>3+rcW~p3*2k<8ET5<Kx%xDJZCyHbGq2A7
zB<r`0&#Mpj>+kt+??7VY)%8z5|0uNDQ@?BH>==GIK88=8LINZs-Am7NcFtb?^;v({
zq8ITc`sa7geZ2VM+sMGMuOD7LdHeYLmg_$w*WCKQb@{T)vd`K3;@>{~dwa2`g9;hw
cuXA+R8{0q8EosLX7#J8lUHx3vIVCg!02F6;9RL6T

literal 0
HcmV?d00001

diff --git a/doc/html/ftv2vertline.png b/doc/html/ftv2vertline.png
new file mode 100644
index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48
GIT binary patch
literal 86
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU=ZVAV_;x7xk{#nfq_BR)5S5Qg7NL$jSLJ7
o42L)T2<A`r@2_xB5a3{uV`H7hz__APvKA!g>FVdQ&MBb@0Ppk@y8r+H

literal 0
HcmV?d00001

diff --git a/doc/html/functions.html b/doc/html/functions.html
new file mode 100644
index 0000000..40516e7
--- /dev/null
+++ b/doc/html/functions.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_func.html"><span>Functions</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div><ul>
+<li>CSMOn()
+: <a class="el" href="classCSMOn.html#a9b25325acfda9b579b3a272ed474480e">CSMOn</a>
+</li>
+<li>getBestPos()
+: <a class="el" href="classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6">CSMOn</a>
+, <a class="el" href="classISearch.html#a9cee257ee19c02341da60440c5cddbd8">ISearch</a>
+, <a class="el" href="classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e">PSO</a>
+</li>
+<li>getFitness()
+: <a class="el" href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5">CSMOn</a>
+, <a class="el" href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">ISearch</a>
+, <a class="el" href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7">PSO</a>
+</li>
+<li>getNEvals()
+: <a class="el" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">CSMOn</a>
+, <a class="el" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">ISearch</a>
+, <a class="el" href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba">PSO</a>
+</li>
+<li>getRandomSeed()
+: <a class="el" href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">PSO</a>
+</li>
+<li>next()
+: <a class="el" href="classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129">ISearch</a>
+, <a class="el" href="classPSO.html#a465d956bdb86e93bc06b6fb016feb70c">PSO</a>
+</li>
+<li>PSO()
+: <a class="el" href="classPSO.html#a810105b87e4f6fc026edd6b4ef484953">PSO</a>
+</li>
+<li>run()
+: <a class="el" href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22">CSMOn</a>
+</li>
+<li>startup()
+: <a class="el" href="classISearch.html#a8eabe4ae3ed69ede2646a536f558f2fe">ISearch</a>
+, <a class="el" href="classPSO.html#a4866695395fb314ea732bccde6691ef3">PSO</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html
new file mode 100644
index 0000000..8c37628
--- /dev/null
+++ b/doc/html/functions_func.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Data Fields - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>CSMOn()
+: <a class="el" href="classCSMOn.html#a9b25325acfda9b579b3a272ed474480e">CSMOn</a>
+</li>
+<li>getBestPos()
+: <a class="el" href="classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6">CSMOn</a>
+, <a class="el" href="classISearch.html#a9cee257ee19c02341da60440c5cddbd8">ISearch</a>
+, <a class="el" href="classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e">PSO</a>
+</li>
+<li>getFitness()
+: <a class="el" href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5">CSMOn</a>
+, <a class="el" href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">ISearch</a>
+, <a class="el" href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7">PSO</a>
+</li>
+<li>getNEvals()
+: <a class="el" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">CSMOn</a>
+, <a class="el" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">ISearch</a>
+, <a class="el" href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba">PSO</a>
+</li>
+<li>getRandomSeed()
+: <a class="el" href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">PSO</a>
+</li>
+<li>next()
+: <a class="el" href="classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129">ISearch</a>
+, <a class="el" href="classPSO.html#a465d956bdb86e93bc06b6fb016feb70c">PSO</a>
+</li>
+<li>PSO()
+: <a class="el" href="classPSO.html#a810105b87e4f6fc026edd6b4ef484953">PSO</a>
+</li>
+<li>run()
+: <a class="el" href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22">CSMOn</a>
+</li>
+<li>startup()
+: <a class="el" href="classISearch.html#a8eabe4ae3ed69ede2646a536f558f2fe">ISearch</a>
+, <a class="el" href="classPSO.html#a4866695395fb314ea732bccde6691ef3">PSO</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/globals.html b/doc/html/globals.html
new file mode 100644
index 0000000..c9a911e
--- /dev/null
+++ b/doc/html/globals.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div><ul>
+<li>Param
+: <a class="el" href="CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1">CSMOn_wrapper.cpp</a>
+</li>
+<li>search()
+: <a class="el" href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7">CSMOn_wrapper.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/globals_func.html b/doc/html/globals_func.html
new file mode 100644
index 0000000..5881129
--- /dev/null
+++ b/doc/html/globals_func.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>search()
+: <a class="el" href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7">CSMOn_wrapper.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/globals_type.html b/doc/html/globals_type.html
new file mode 100644
index 0000000..91d98d4
--- /dev/null
+++ b/doc/html/globals_type.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>Param
+: <a class="el" href="CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1">CSMOn_wrapper.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/graph_legend.html b/doc/html/graph_legend.html
new file mode 100644
index 0000000..33ac78c
--- /dev/null
+++ b/doc/html/graph_legend.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Graph Legend</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Graph Legend</div>  </div>
+</div><!--header-->
+<div class="contents">
+<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
+<p>Consider the following example: </p><div class="fragment"><div class="line"><span class="comment">/*! Invisible class because of truncation */</span></div>
+<div class="line"><span class="keyword">class </span>Invisible { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Truncated class, inheritance relation is hidden */</span></div>
+<div class="line"><span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Class not documented with doxygen comments */</span></div>
+<div class="line"><span class="keyword">class </span>Undocumented { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Class that is inherited using public inheritance */</span></div>
+<div class="line"><span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! A template class */</span></div>
+<div class="line"><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Class that is inherited using protected inheritance */</span></div>
+<div class="line"><span class="keyword">class </span>ProtectedBase { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Class that is inherited using private inheritance */</span></div>
+<div class="line"><span class="keyword">class </span>PrivateBase { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Class that is used by the Inherited class */</span></div>
+<div class="line"><span class="keyword">class </span>Used { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Super class that inherits a number of other classes */</span></div>
+<div class="line"><span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,</div>
+<div class="line">                  <span class="keyword">protected</span> ProtectedBase,</div>
+<div class="line">                  <span class="keyword">private</span> PrivateBase,</div>
+<div class="line">                  <span class="keyword">public</span> Undocumented,</div>
+<div class="line">                  <span class="keyword">public</span> Templ&lt;int&gt;</div>
+<div class="line">{</div>
+<div class="line">  <span class="keyword">private</span>:</div>
+<div class="line">    Used *m_usedClass;</div>
+<div class="line">};</div>
+</div><!-- fragment --><p> This will result in the following graph:</p>
+<center><div class="image">
+<img src="graph_legend.png" />
+</div>
+</center><p>The boxes in the above graph have the following meaning: </p>
+<ul>
+<li>
+A filled gray box represents the struct or class for which the graph is generated. </li>
+<li>
+A box with a black border denotes a documented struct or class. </li>
+<li>
+A box with a grey border denotes an undocumented struct or class. </li>
+<li>
+A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
+</ul>
+<p>The arrows have the following meaning: </p>
+<ul>
+<li>
+A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
+<li>
+A dark green arrow is used for protected inheritance. </li>
+<li>
+A dark red arrow is used for private inheritance. </li>
+<li>
+A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
+<li>
+A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/graph_legend.md5 b/doc/html/graph_legend.md5
new file mode 100644
index 0000000..a06ed05
--- /dev/null
+++ b/doc/html/graph_legend.md5
@@ -0,0 +1 @@
+387ff8eb65306fa251338d3c9bd7bfff
\ No newline at end of file
diff --git a/doc/html/graph_legend.png b/doc/html/graph_legend.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c1d0c239cee3d6ab988e201fd3eac718f39467c
GIT binary patch
literal 19871
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

literal 0
HcmV?d00001

diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html
new file mode 100644
index 0000000..886d87a
--- /dev/null
+++ b/doc/html/hierarchy.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Class Hierarchy</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li class="current"><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Class Hierarchy</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">
+<p><a href="inherits.html">Go to the graphical class hierarchy</a></p>
+This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct__Param.html" target="_self">_Param</a></td><td class="desc">Contains a parameter received from / sent to the Python caller </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct__point.html" target="_self">_point</a></td><td class="desc">A point representing the number of evaluations and the respective fitness value </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCSMOn.html" target="_self">CSMOn</a></td><td class="desc">Convergence Stabilization Modeling operating in Online Mode ( formely called of C'MOn! ) </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classISearch.html" target="_self">ISearch</a></td><td class="desc">The interface that the search methods must to implement </td></tr>
+<tr id="row_3_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classPSO.html" target="_self">PSO</a></td><td class="desc">Particle Swarm Optimization </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/index.html b/doc/html/index.html
new file mode 100644
index 0000000..70afad0
--- /dev/null
+++ b/doc/html/index.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Convergence Stabilization Modeling operating in Online Mode</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Convergence Stabilization Modeling operating in Online Mode </div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>This is an automated method to estimate the best moment to stop swarm iterations based on the analysis of the convergence behavior presented during optimization, aiming to provide an effective balance between saving fitness evaluations and keeping the optimization quality. The convergence analysis is performed through a sequence of linear regressions using exponential and log-like curves.</p>
+<dl class="section date"><dt>Date</dt><dd>04/Mar/2017 </dd></dl>
+<dl class="section author"><dt>Author</dt><dd>Peter Frank Perroni (<a href="#" onclick="location.href='mai'+'lto:'+'pfp'+'er'+'ron'+'i@'+'gma'+'il'+'.co'+'m'; return false;">pfper<span style="display: none;">.nosp@m.</span>roni<span style="display: none;">.nosp@m.</span>@gmai<span style="display: none;">.nosp@m.</span>l.co<span style="display: none;">.nosp@m.</span>m</a>) </dd></dl>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/inherit_graph_0.map b/doc/html/inherit_graph_0.map
new file mode 100644
index 0000000..e5a597c
--- /dev/null
+++ b/doc/html/inherit_graph_0.map
@@ -0,0 +1,3 @@
+<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
+<area shape="rect" id="node1" href="$struct__Param.html" title="Contains a parameter received from / sent to the Python caller. " alt="" coords="5,5,72,32"/>
+</map>
diff --git a/doc/html/inherit_graph_0.md5 b/doc/html/inherit_graph_0.md5
new file mode 100644
index 0000000..f218d59
--- /dev/null
+++ b/doc/html/inherit_graph_0.md5
@@ -0,0 +1 @@
+08d082a6a5f869ea7abc3337bf6242b7
\ No newline at end of file
diff --git a/doc/html/inherit_graph_0.png b/doc/html/inherit_graph_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac7e4195e7f0f53fe475b154423fc08933c20b02
GIT binary patch
literal 714
zcmeAS@N?(olHy`uVBq!ia0y~yVDM#NU{K{?VqjqCIP>`e0|NtFlDE4H!+#K5uy^@n
z1_q{jPZ!6KjK;S!_GZ5dkZ8XjvtE*`PREH=a4Me_*SmFMx0aePUi1`TcYl8A>QVaz
zT4fiGo>|A$6tY}NuW2He64#>=o+BOKN;o>cc1u@piF<6UnjhD<U%l#F=R$*H3z+`>
zDQi$J{Ai<p<<ZabpG$7Pbz6M#WXh-LOb($=7dd%(@#XhzvbRPp3`mf8_F^SR@Y*oT
zzT2-f4;S7MRF-9#mKv^=HFLiB`Ol9YtrW=OY(7{}UVi;$i3jh$VvoA{`T6<H2N&Fb
zKmGL6^XJbe7<d$Xkl&OTe^Yw$$&%VyUWT;ImQ%eVb;MdG#I0BVAy{3!;^)eX84L+#
zvl$&01{CbR8y+5>w%JmypV?ve-DMi9B6OnGUh`VI=^g`vh-<2m<n+_2Ml&CMtT3Cs
z_4Zq~=7%p|X3lr0=&Z5ZAM~@FVL{yb{^Q9l0lV+kRaAVau#re^5%9gdFkr>?*H4Qq
z86^1HZO$_vc>6YYWr!3H+iTuW4R!nF6{q+uXKYA~Y`JjyG&e(!+v2;45^aeR&!TOb
z=5cR{T6_KV(@MEy9nYZ6H$_+y?dDHEoyzc_GVWWBiPUYWCye*+-#0vV`DMw|h`fL&
zo<((^Z0d`PHwP`r+;ugp^>Cu2z@5DBpH!D$-nrXx`Q?-4xlb$jJ*x6tL|mt(TK4VU
zzkj;Q%dcNc3qASvE^bs{ulJjvl4&*fl8J8DqtBm>8G4Q<yYjkN>{xy=!$(D^(c!?$
zl3O`u`|rR1{8PkqLgN*ylAtx~owF+Uh3?@C6xq75&;PgWhNSbt-*2`>)om9)|Jg}*
zp7gbaDMpolWKw?q_)%aXbKmRq?98P>6aSmfW84^#6WROA|2yZ>6{&S`Hs`swR@5;T
Y7_kbe9iE=Sz`(%Z>FVdQ&MBb@0I}pt$N&HU

literal 0
HcmV?d00001

diff --git a/doc/html/inherit_graph_1.map b/doc/html/inherit_graph_1.map
new file mode 100644
index 0000000..37e518a
--- /dev/null
+++ b/doc/html/inherit_graph_1.map
@@ -0,0 +1,3 @@
+<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
+<area shape="rect" id="node1" href="$struct__point.html" title="A point representing the number of evaluations and the respective fitness value. " alt="" coords="6,5,63,32"/>
+</map>
diff --git a/doc/html/inherit_graph_1.md5 b/doc/html/inherit_graph_1.md5
new file mode 100644
index 0000000..e1c1285
--- /dev/null
+++ b/doc/html/inherit_graph_1.md5
@@ -0,0 +1 @@
+d6c559db45538fd8d980bba8a0ddce13
\ No newline at end of file
diff --git a/doc/html/inherit_graph_1.png b/doc/html/inherit_graph_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ebbfe1c21802a6e68dfa6bbd028994d7ed1009a
GIT binary patch
literal 722
zcmeAS@N?(olHy`uVBq!ia0y~yU~pw%U{K{?VqjpHExlQVfq{W7$=lt9;Xep2*t>i(
z0|QgLr;B4qMC;ob`?FsKh#dESRV=ckZB<}b!jiB20wPvj9_73%nw^ij1_><OA`){n
z(CgqkzBUD}ce27F;wP7w$-WX`KYGwfJLBGjqtnB=_dZ*x|6^v+`M(Fh&%RTfw_}FR
z=>^JtWx5W@e0ATX_x}93G;6a?wBGb`C054u*Q2$jhAGcjwa;~NVBce=#sg)o3qO4O
zcI@*Wul>J%GdL&+BuJ!1uey*Z(Y8n<G$8+H@rTX#W&Y%xNiaBI@J3#DAG3Yh=AX}=
zrNyq-=(6Zj*5Ai$Z_y{t)mpmu^wT06Ic5EIGv!moO{ID_Z{9q4vhb{B_V)IS308B}
zCVR>ppX-;dH~sgI9}#!+CE7x@MAu)huBnO95o0{?{yTHS*)-?LACFe<;_UD5Kbux;
zG*d;0v-{|z^UsZE_NaKS4SW6fudP`3OrK>HHv6oW#;q@wIld`JYwE6DyB<~Ed;HO3
zQp*a5f0I2_ggRZG%)k8pJL7`eZ?(>5ZS|V;q{hx%f~QGA<6zWUw@FKkf;t%veEz&y
z=k({FG7P`|{>ys*J!JLO{q9+F?B)91D=qBp<@wqdU(DDTvEy!@s>h@!1r{N`iX2P~
zJ#LHDm`uJc-V@94;%gO)W5n99=7S1di-c+_D+?`TvRK`tvM$^>|MlzF1cQw2x68}R
zJ6#TCm;{NqUjFj>^=bu<@87?#dJ=g&$IMxH!N&O&HgY^{`uh5ZAAWfIR+quX#zuhU
z;pd-D3j;Jnf|~9>DB7u~r}w7JdJ$9ZYsNz^Dcb`1%lJ<H-2Cpn_FTVwH8<vfKPRed
zSXXZUTlQh|{TFA?i+^<xIl6rL^0(eUHRt+0?_TlB=2Y6|Xz{jlFJG?o+W)KWOT9ZJ
ePG6iopP!v?C&lA%Cy{}Hfx*+&&t;ucLK6VtQBn2)

literal 0
HcmV?d00001

diff --git a/doc/html/inherit_graph_2.map b/doc/html/inherit_graph_2.map
new file mode 100644
index 0000000..8482f07
--- /dev/null
+++ b/doc/html/inherit_graph_2.map
@@ -0,0 +1,3 @@
+<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
+<area shape="rect" id="node1" href="$classCSMOn.html" title="Convergence Stabilization Modeling operating in Online Mode ( formely called of C&#39;MOn! )..." alt="" coords="5,5,75,32"/>
+</map>
diff --git a/doc/html/inherit_graph_2.md5 b/doc/html/inherit_graph_2.md5
new file mode 100644
index 0000000..5a2e2df
--- /dev/null
+++ b/doc/html/inherit_graph_2.md5
@@ -0,0 +1 @@
+a97c8263277af2285d7c2fef56e480e0
\ No newline at end of file
diff --git a/doc/html/inherit_graph_2.png b/doc/html/inherit_graph_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..3705b3d6aa696a51c384486ba91d0e6cb81cad6a
GIT binary patch
literal 1146
zcmeAS@N?(olHy`uVBq!ia0y~yU<hDfU{K{?Vqjp1n)9=Rfq{W7$=lt9;Xep2*t>i(
z0|Se`r;B4qM&sL=-X2-e634HfJ2Ztw)x%I=vCioejuDNWoVFrLO;a2+o6~M8oZxEl
zP-0ry<|nk!L1{C4OTa@FN9T?cU5nH+n%UB#etMj^mA*lLcI}$t^Cxc`uKOv!_HXU$
zkN;O@*LLf&95(pjcj{Lb^U5$bi@RUnHf-L=fBpJ(t*KgK-L+F^`-kV{t&3ZqZXl8I
zL_J~p>C~-JsYa2fdjIN1>P%a=Ze2W+a#U25*TSXywK<xEl<w#8r#D=Vm3&}-`Rv)=
z7`=3(nU$55Hgfs7xxBuuhZDC(#fF5qC<sL8T)S~YBI>yUN7BX!&h6!$E=-OWo<3Fm
zB+=>8*4DNoMz7Q5(Z`C(lP7<yu(6!{p8ME|95Z#7dsFYf*VoW^@%C-$&Y0uJk6*rg
zxx%KdxLEk)w=Z8hTo&!!YdimZ`u5v9WAf_j?I$rYq@<_6fB$}QFe?+I(nJo19Xob3
zB>wpLapKuD?$$%Sy}g?^Z=O1JYFAfRTU%R&&A;gI_goAKX0z+NR2bI;t+cYX-YB>=
z>h6sj9a~POY&!kaDY$I++=B@VPIn(o>UC>Qd;aX1iV!E)ny}TZOpIdsGJM7}eVPw`
zXm8>CC6gf4yKVF4=H3=3#r4;_w@C81m6vb7|GvJwa`DB8prB8`es#G-MMw9#DRcQO
zzL;YceMn<(oW2Ox#D{8=JI|&CYlzJC`yM_2!*T}pW=94G1%V%-?Q7SrJ#@&)M(+NV
zD<-C<Pd`>{I6Z&fyh|A-Pr_^K>-|-P{?^$u^_;1xuAXhM@bb$gK`T!btPGLjVdG_E
zW_a-KogU`{e)*^qI{EnqD`w4}y*F<C-8^v)md~F*A3b`Mo0~gBto?9lNr}RA%hgv;
zJ^%dq^XLDyN7t-bGkv=FlC?oAPo!)LTIpi<rGFN?=bTF-T&-S9=gpau(7b#1ZW}p$
zsa`jwiARsRGC1VszJ2lH#lwdS-4;vA$sH@3b}~h*o3-uX)2FE`L%NQgOfl+pE8cyV
zQ+wClcduS$E%9A`nUTTL(o%kFuhz^>SFT+%Gd5;UUe$dvrK+w@O{mj==k(K0ix(@a
z@Hqx}dwV;@u3W#KztxGa{czgmt=qRJ2XnP1)zrxRwPR$M=;5;ba_7-U^>5PtKJPy4
z{@sA*u-$xpd;9o>0Ty%5H8(S_4dZ6m5Vh7LY-Px_Y15+CUR%9dd->(a@NjbjgNAn+
zPYPbWeyy#qFW%|G`LVsdebXkRB|3BG&tJc8U6F;1-F*4(qZ{rD-IBj`_$0$&gEt>5
zmIP_e^;4hdVQOmn`t|D!ExG>et+!UK(qd{nkYeQS<~DEMJfWDp{CsAHFI9h|zdtOf
zC@9#lY11SRl_HBdot>Q-Ccm~tuWJ0SU&TFVr}y&RMh9N5<0;tn`ZnYK&$G(P%FMpn
z1*zu*mRZPH$h=!ETf3~lV$R`*2aKEwp8bFL1)6E=8Jg#?WgI;cJBNXRfx*+&&t;uc
GLK6TJ{u`SB

literal 0
HcmV?d00001

diff --git a/doc/html/inherit_graph_3.map b/doc/html/inherit_graph_3.map
new file mode 100644
index 0000000..39c2cfb
--- /dev/null
+++ b/doc/html/inherit_graph_3.map
@@ -0,0 +1,4 @@
+<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
+<area shape="rect" id="node1" href="$classISearch.html" title="The interface that the search methods must to implement. " alt="" coords="5,5,72,32"/>
+<area shape="rect" id="node2" href="$classPSO.html" title="Particle Swarm Optimization. " alt="" coords="120,5,171,32"/>
+</map>
diff --git a/doc/html/inherit_graph_3.md5 b/doc/html/inherit_graph_3.md5
new file mode 100644
index 0000000..d264ef2
--- /dev/null
+++ b/doc/html/inherit_graph_3.md5
@@ -0,0 +1 @@
+28d32a0c0c34884e91329c7ce2b3f9ba
\ No newline at end of file
diff --git a/doc/html/inherit_graph_3.png b/doc/html/inherit_graph_3.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9e2908c644985d3f4a001707f7054fca1514260
GIT binary patch
literal 1962
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
HB{Ts5ziid~

literal 0
HcmV?d00001

diff --git a/doc/html/inherit_graph_4.map b/doc/html/inherit_graph_4.map
new file mode 100644
index 0000000..32e1a13
--- /dev/null
+++ b/doc/html/inherit_graph_4.map
@@ -0,0 +1,3 @@
+<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
+<area shape="rect" id="node1" href="$classCSMOn_1_1ParamArrayType.html" title="CSMOn.ParamArrayType" alt="" coords="5,5,176,32"/>
+</map>
diff --git a/doc/html/inherit_graph_4.md5 b/doc/html/inherit_graph_4.md5
new file mode 100644
index 0000000..0506c15
--- /dev/null
+++ b/doc/html/inherit_graph_4.md5
@@ -0,0 +1 @@
+2b073973e1b02f8c32a00f423afbf89a
\ No newline at end of file
diff --git a/doc/html/inherit_graph_4.png b/doc/html/inherit_graph_4.png
new file mode 100644
index 0000000000000000000000000000000000000000..22b957b64750ba27d663f9bffaf91d6be120407c
GIT binary patch
literal 2279
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

literal 0
HcmV?d00001

diff --git a/doc/html/inherit_graph_5.map b/doc/html/inherit_graph_5.map
new file mode 100644
index 0000000..a9568bc
--- /dev/null
+++ b/doc/html/inherit_graph_5.map
@@ -0,0 +1,3 @@
+<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
+<area shape="rect" id="node1" href="$classISearch.html" title="ISearch" alt="" coords="5,5,72,32"/>
+</map>
diff --git a/doc/html/inherit_graph_5.md5 b/doc/html/inherit_graph_5.md5
new file mode 100644
index 0000000..a3a3565
--- /dev/null
+++ b/doc/html/inherit_graph_5.md5
@@ -0,0 +1 @@
+800d65b905e3abe4eea93ef73f1d8914
\ No newline at end of file
diff --git a/doc/html/inherit_graph_5.png b/doc/html/inherit_graph_5.png
new file mode 100644
index 0000000000000000000000000000000000000000..3df10139acf1bb588eea69e741d2da47c47b89b7
GIT binary patch
literal 1014
zcmeAS@N?(olHy`uVBq!ia0y~yVDM#NU{K{?VqjqCIP>`e0|NtFlDE4H!+#K5uy^@n
z1_tKUo-U3d8I5me`g&-^N*q7GXJ4e7N|=<Umup}^%g#*UcZ-_BrnWgY>1JI#zD!a}
zX^MhQlbEYsl=#GikQ<8@8FUnh8hSZ(SqQNNN~ZP5CqLKY>nMGFXz#hL-%aaRKd($X
zSNX5rLY}ADk>jBGgZb;lCa7()Gwy!>==1$2N8W$u=jClZ{BV8HVWsBg=DT<Ac7Eyg
z-+ec4YgDLK=&jI=XMX<Nc{AtV74<_oX3GOF#XGJI+rPSI`rnyfXGW&f*73C^%Js7!
zT^PV|{9{)amt22%Z0y?Wum2z0I_1vC^FJQ!`K#;Z=BClLDMBY`<&~#Jy?uRlc6NID
z`pYeJUoY8}w|)EeUbn?g3kA4Zy_ObbW@eU`PZv#nGilZNLx-FupZxOSLqpKgAkRRN
zuH=mpjsi=UE>)V?q0kYb!^W^7YHe?C@6Vq<Q&Urmi;Ec;`j0m!-ne*iqL13<n>kf`
z<J2Z|wmPj1`~Bt1l#G&sf`HIaRRNA3x5x82T0L{}^7gH+;b1uMwrp`leSN&r#3#?5
zZQHU%M@Q#J&AubqpFe+&jg76_KVQYO)ydG%P>_dhXG~sw{r|IP&)&Kv#qi+WyK`^L
zm>F)}zTMy7&&%c<8!PKMiLZU}%9WhQKe`<6>+4G}$k-Uc!0`S1_x)ijf>wrTU6nqo
z`Kv|1h$ngb?ew&?SFc}N%AEW4%WBp2YuE1GySM1ahYtaI)7_N>r=J$(YJK$a$H|kN
zv)F&CcnUd11P5>4y0x_}CN@?ziJ{?aTC>2h#~;h@UVdmS!j+qoW5Cn=YW@24moHxy
z>SS43Sy_3KyZ!ugXO8l+vRSidKP}qnx7_=iWUt#rf%d~66OX@s{kr^a{pobC-@;Be
zZr^@gU=h%j7?GW=eb_)lS5woIgNuc!Z1>z{nOmcL1&$m&+Ilj@Yo3<6Iy-}cSa+?R
z{HmC^xO3;usl^>I&=Fm!`BO(j<3iR}TU*=e>gu@l-`~99IbPW7);zDQtjy2PFG$37
zQc866?Ng_`RD?R+7RTsKUzWKyj-R2TuFh}XhV|?7v$9UTEU}t<?%~6SM<yO)TDc~g
zL-DWyTl2z&3mcC=o;rPce}DgFlU_O2X2-dH>H-{H-QDbLY;kdM3N78;-L9^#K`XDM
z7-gDBP4sBFrYj}H*Ip<i-hH&jE`ISv7N*Ae)=gX9p8s#B^ZxvQ!N~bDU9Y95P5e4D
zvgX6wy}NeJs*`>5=xdd>w)Xuglk_iNz8uWg{@L|bL|RUc&P^${&HwF<JJ*~)^Jw>v
bKa6Gz@-F_<FkZ&Mz`)??>gTe~DWM4f1AgK4

literal 0
HcmV?d00001

diff --git a/doc/html/inherits.html b/doc/html/inherits.html
new file mode 100644
index 0000000..72239eb
--- /dev/null
+++ b/doc/html/inherits.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Class Hierarchy</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li class="current"><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Class Hierarchy</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">
+<p><a href="hierarchy.html">Go to the textual class hierarchy</a></p>
+</div><table border="0" cellspacing="10" cellpadding="0">
+<tr><td><img src="inherit_graph_0.png" border="0" alt="" usemap="#__Param"/>
+<map name="__Param" id="__Param">
+<area shape="rect" id="node1" href="struct__Param.html" title="Contains a parameter received from / sent to the Python caller. " alt="" coords="5,5,72,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_1.png" border="0" alt="" usemap="#__point"/>
+<map name="__point" id="__point">
+<area shape="rect" id="node1" href="struct__point.html" title="A point representing the number of evaluations and the respective fitness value. " alt="" coords="6,5,63,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_2.png" border="0" alt="" usemap="#CSMOn"/>
+<map name="CSMOn" id="CSMOn">
+<area shape="rect" id="node1" href="classCSMOn.html" title="Convergence Stabilization Modeling operating in Online Mode ( formely called of C&#39;MOn! )..." alt="" coords="5,5,75,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_3.png" border="0" alt="" usemap="#ISearch"/>
+<map name="ISearch" id="ISearch">
+<area shape="rect" id="node1" href="classISearch.html" title="The interface that the search methods must to implement. " alt="" coords="5,5,72,32"/><area shape="rect" id="node2" href="classPSO.html" title="Particle Swarm Optimization. " alt="" coords="120,5,171,32"/></map>
+</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/jquery.js b/doc/html/jquery.js
new file mode 100644
index 0000000..227e579
--- /dev/null
+++ b/doc/html/jquery.js
@@ -0,0 +1,39 @@
+/*
+ * jQuery JavaScript Library v1.7.1
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Nov 21 21:11:03 2011 -0500
+ */
+(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))
+}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;
+if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false
+}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
+/*
+ * Sizzle CSS Selector Engine
+ *  Copyright 2011, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1
+},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);
+ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;
+if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)
+}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b
+})}})(window);
+/*
+ PowerTip - v1.2.0 - 2013-04-03
+ http://stevenbenner.github.com/jquery-powertip/
+ Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;break;case"se":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest("svg")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=["nw","n","ne","e","se","s","sw","w"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k("#"+Q.popupId);if(O.length===0){O=k("<div/>",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));
diff --git a/doc/html/nav_f.png b/doc/html/nav_f.png
new file mode 100644
index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2
GIT binary patch
literal 153
zcmeAS@N?(olHy`uVBq!ia0y~yU|?imV6fm|Vqjp{%*48zfq@~x)5S5Qg7NKLZ@vZv
z9@mT0wnwwK{b+Q$n4A6R$RQ6IiRlGJm-py3^?h!7)we`C$Sg`B%#(Gakn4md)2z)c
zIU=8D&Cc|kvF6^Z=UxUq7X>fs_x+wdQ&zC_$H&k2_L~(mdq^nUWn}nT$-uzC;OXk;
Jvd$@?2>{ARIP(Ai

literal 0
HcmV?d00001

diff --git a/doc/html/nav_g.png b/doc/html/nav_g.png
new file mode 100644
index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81
GIT binary patch
literal 95
zcmeAS@N?(olHy`uVBq!ia0y~yU|?imU|{25V_;xl68K`sz`&s9>Eakt!T9#BAuj_1
z2lGLH5An2?hw;3+c6B?R`YL3e_I+`nnVp?Km|^dqCL2};1_lOCS3j3^P6<r_r(zf(

literal 0
HcmV?d00001

diff --git a/doc/html/nav_h.png b/doc/html/nav_h.png
new file mode 100644
index 0000000000000000000000000000000000000000..33389b101d9cd9b4c98ad286b5d9c46a6671f650
GIT binary patch
literal 98
zcmeAS@N?(olHy`uVBq!ia0y~yU|?imVBq0kVqjp<dFjBwz`&sC>Eakt!T9#BBNu}M
zhg0BMX7<gqZqL53sPAF@15E|Z*MAjWCLVopXFubye3tg0oD26sx;$O|T-G@yGywpi
C03PH3

literal 0
HcmV?d00001

diff --git a/doc/html/open.png b/doc/html/open.png
new file mode 100644
index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b
GIT binary patch
literal 123
zcmeAS@N?(olHy`uVBq!ia0y~yVBiE{4mJh`h6fYb1Q-|?oIG6|Ln;{G-aW|KV8FwA
z;rg1ZGh+@g?rJc$oSvj8zS6R~=7Xo5it>T`TmD+;uQ+m}s#*WMoza2lbLp9(I{Its
b_As80;W@%@d2<H?0|SGntDnm{r-UW|dnqY@

literal 0
HcmV?d00001

diff --git a/doc/html/pso__example_8py_source.html b/doc/html/pso__example_8py_source.html
new file mode 100644
index 0000000..3d7ef6b
--- /dev/null
+++ b/doc/html/pso__example_8py_source.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: python/pso_example.py Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_7837fde3ab9c1fb2fc5be7b717af8d79.html">python</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pso_example.py</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment"># Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"># Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"># of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"># in the Software without restriction, including without limitation the rights</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"># to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"># copies of the Software, and to permit persons to whom the Software is</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"># furnished to do so, subject to the following conditions:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"># The above copyright notice and this permission notice shall be included in</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"># all copies or substantial portions of the Software.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"># Additionally, if used for any scientific purpose, the following reference</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"># must be cited:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"># </span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"># Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"># 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"># Algorithms. In Proceedings of GECCO &#39;17, Berlin, Germany, July 15-19, 2017,</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"># pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"># THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"># IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"># FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"># AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"># LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"># OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"># THE SOFTWARE.</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"># pso_example.cpp</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"># Created on: 02/Jul/2017</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"># Author: Peter Frank Perroni (pfperroni@gmail.com)</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">#</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment"># This file contains an example of how to call the CSMOn C++ API.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">from</span> CSMOn <span class="keyword">import</span> *</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment"># Prepare the Input parameters.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;bestResult=[<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">&quot;nEvals&quot;</span>, i=0), <a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">&quot;fit&quot;</span>, d=0)]</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;s1=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">&quot;s1&quot;</span>, d=-5.12)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;s2=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">&quot;s2&quot;</span>, d=5.12)</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;w=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">&quot;w&quot;</span>, d=-0.5)</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;c1=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">&quot;c1&quot;</span>, d=0.2)</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;c2=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">&quot;c2&quot;</span>, d=0.2)</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;n=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">&quot;n&quot;</span>, i=100)</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;p=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">&quot;p&quot;</span>, i=30)</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;M=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">&quot;M&quot;</span>, i=50000)</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;R=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">&quot;</span><span class="stringliteral">R&quot;, d=-0.08)</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="stringliteral"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="stringliteral"></span><span class="comment"># Call CSMOn running a PSO.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;res=search(<span class="stringliteral">&quot;pso&quot;</span>, [s1, s2, w, c1, c2, n, p, M, R], bestResult)</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">#Print the results.</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keywordflow">print</span> <span class="stringliteral">&quot;\nOptimized result: &quot;</span>,res</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keywordflow">print</span> <span class="stringliteral">&quot;\nnEvals:&quot;</span>, bestResult[0].i,<span class="stringliteral">&quot;, Fitness:&quot;</span>,bestResult[1].d</div>
+<div class="ttc" id="struct__Param_html"><div class="ttname"><a href="struct__Param.html">_Param</a></div><div class="ttdoc">Contains a parameter received from / sent to the Python caller. </div><div class="ttdef"><b>Definition:</b> <a href="CSMOn__wrapper_8cpp_source.html#l00047">CSMOn_wrapper.cpp:47</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:11:46 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/search/all_0.html b/doc/html/search/all_0.html
new file mode 100644
index 0000000..86e6c08
--- /dev/null
+++ b/doc/html/search/all_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_0.js b/doc/html/search/all_0.js
new file mode 100644
index 0000000..f58fc38
--- /dev/null
+++ b/doc/html/search/all_0.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['_5fparam',['_Param',['../struct__Param.html',1,'']]],
+  ['_5fpoint',['_point',['../struct__point.html',1,'']]]
+];
diff --git a/doc/html/search/all_1.html b/doc/html/search/all_1.html
new file mode 100644
index 0000000..122fcbb
--- /dev/null
+++ b/doc/html/search/all_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_1.js b/doc/html/search/all_1.js
new file mode 100644
index 0000000..02c1ee5
--- /dev/null
+++ b/doc/html/search/all_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['csmon',['CSMOn',['../classCSMOn.html',1,'CSMOn'],['../classCSMOn.html#a9b25325acfda9b579b3a272ed474480e',1,'CSMOn::CSMOn()']]],
+  ['csmon_5fwrapper_2ecpp',['CSMOn_wrapper.cpp',['../CSMOn__wrapper_8cpp.html',1,'']]],
+  ['convergence_20stabilization_20modeling_20operating_20in_20online_20mode',['Convergence Stabilization Modeling operating in Online Mode',['../index.html',1,'']]]
+];
diff --git a/doc/html/search/all_2.html b/doc/html/search/all_2.html
new file mode 100644
index 0000000..6850d19
--- /dev/null
+++ b/doc/html/search/all_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_2.js b/doc/html/search/all_2.js
new file mode 100644
index 0000000..dc289c3
--- /dev/null
+++ b/doc/html/search/all_2.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['getbestpos',['getBestPos',['../classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6',1,'CSMOn::getBestPos()'],['../classISearch.html#a9cee257ee19c02341da60440c5cddbd8',1,'ISearch::getBestPos()'],['../classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e',1,'PSO::getBestPos()']]],
+  ['getfitness',['getFitness',['../classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5',1,'CSMOn::getFitness()'],['../classISearch.html#a3504ed6684ca6c82aa79c40b965d5237',1,'ISearch::getFitness()'],['../classPSO.html#a9859c4126970209c8c8f534d4458dbd7',1,'PSO::getFitness()']]],
+  ['getnevals',['getNEvals',['../classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593',1,'CSMOn::getNEvals()'],['../classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639',1,'ISearch::getNEvals()'],['../classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba',1,'PSO::getNEvals()']]],
+  ['getrandomseed',['getRandomSeed',['../classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813',1,'PSO']]]
+];
diff --git a/doc/html/search/all_3.html b/doc/html/search/all_3.html
new file mode 100644
index 0000000..914288c
--- /dev/null
+++ b/doc/html/search/all_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_3.js b/doc/html/search/all_3.js
new file mode 100644
index 0000000..c6e5010
--- /dev/null
+++ b/doc/html/search/all_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['isearch',['ISearch',['../classISearch.html',1,'']]]
+];
diff --git a/doc/html/search/all_4.html b/doc/html/search/all_4.html
new file mode 100644
index 0000000..47becb8
--- /dev/null
+++ b/doc/html/search/all_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_4.js b/doc/html/search/all_4.js
new file mode 100644
index 0000000..d884ca3
--- /dev/null
+++ b/doc/html/search/all_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['next',['next',['../classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129',1,'ISearch::next()'],['../classPSO.html#a465d956bdb86e93bc06b6fb016feb70c',1,'PSO::next()']]]
+];
diff --git a/doc/html/search/all_5.html b/doc/html/search/all_5.html
new file mode 100644
index 0000000..b11c1d1
--- /dev/null
+++ b/doc/html/search/all_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_5.js b/doc/html/search/all_5.js
new file mode 100644
index 0000000..d512dd9
--- /dev/null
+++ b/doc/html/search/all_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['param',['Param',['../CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1',1,'CSMOn_wrapper.cpp']]],
+  ['pso',['PSO',['../classPSO.html',1,'PSO'],['../classPSO.html#a810105b87e4f6fc026edd6b4ef484953',1,'PSO::PSO()']]]
+];
diff --git a/doc/html/search/all_6.html b/doc/html/search/all_6.html
new file mode 100644
index 0000000..a57d74f
--- /dev/null
+++ b/doc/html/search/all_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_6.js b/doc/html/search/all_6.js
new file mode 100644
index 0000000..2f49c8a
--- /dev/null
+++ b/doc/html/search/all_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['run',['run',['../classCSMOn.html#a287ef04ef03f758a2a121057e9798c22',1,'CSMOn']]]
+];
diff --git a/doc/html/search/all_7.html b/doc/html/search/all_7.html
new file mode 100644
index 0000000..ecca251
--- /dev/null
+++ b/doc/html/search/all_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_7.js b/doc/html/search/all_7.js
new file mode 100644
index 0000000..754d3fd
--- /dev/null
+++ b/doc/html/search/all_7.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['search',['search',['../CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7',1,'CSMOn_wrapper.cpp']]],
+  ['startup',['startup',['../classISearch.html#a8eabe4ae3ed69ede2646a536f558f2fe',1,'ISearch::startup()'],['../classPSO.html#a4866695395fb314ea732bccde6691ef3',1,'PSO::startup()']]]
+];
diff --git a/doc/html/search/all_8.html b/doc/html/search/all_8.html
new file mode 100644
index 0000000..f8f8560
--- /dev/null
+++ b/doc/html/search/all_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/all_8.js b/doc/html/search/all_8.js
new file mode 100644
index 0000000..26d541f
--- /dev/null
+++ b/doc/html/search/all_8.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['teste',['Teste',['../index.html',1,'']]]
+];
diff --git a/doc/html/search/classes_0.html b/doc/html/search/classes_0.html
new file mode 100644
index 0000000..d2e0c9a
--- /dev/null
+++ b/doc/html/search/classes_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_0.js b/doc/html/search/classes_0.js
new file mode 100644
index 0000000..f58fc38
--- /dev/null
+++ b/doc/html/search/classes_0.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['_5fparam',['_Param',['../struct__Param.html',1,'']]],
+  ['_5fpoint',['_point',['../struct__point.html',1,'']]]
+];
diff --git a/doc/html/search/classes_1.html b/doc/html/search/classes_1.html
new file mode 100644
index 0000000..b04aca3
--- /dev/null
+++ b/doc/html/search/classes_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_1.js b/doc/html/search/classes_1.js
new file mode 100644
index 0000000..7de6b5f
--- /dev/null
+++ b/doc/html/search/classes_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['csmon',['CSMOn',['../classCSMOn.html',1,'']]]
+];
diff --git a/doc/html/search/classes_2.html b/doc/html/search/classes_2.html
new file mode 100644
index 0000000..ef9c9ed
--- /dev/null
+++ b/doc/html/search/classes_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_2.js b/doc/html/search/classes_2.js
new file mode 100644
index 0000000..c6e5010
--- /dev/null
+++ b/doc/html/search/classes_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['isearch',['ISearch',['../classISearch.html',1,'']]]
+];
diff --git a/doc/html/search/classes_3.html b/doc/html/search/classes_3.html
new file mode 100644
index 0000000..2e68df4
--- /dev/null
+++ b/doc/html/search/classes_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/classes_3.js b/doc/html/search/classes_3.js
new file mode 100644
index 0000000..57534f6
--- /dev/null
+++ b/doc/html/search/classes_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['pso',['PSO',['../classPSO.html',1,'']]]
+];
diff --git a/doc/html/search/close.png b/doc/html/search/close.png
new file mode 100644
index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9
GIT binary patch
literal 273
zcmeAS@N?(olHy`uVBq!ia0y~yVBiK}4mJh`hLvl|)fgBUZg{#lhDb=32JRJdbKton
zA<88pBIW$rbWi<q=X5q>jSKh6tCh9xi%p+@`?Q+n!RFfgXE*8G*v9+3QmISnNMVo7
z`H9O`PI%UrIqQr?-;Q<O_xG9cI8RCKT%>Wty6>_6MEw<qoWd?ve74!mqJL|fYiMZ6
z+*BQ<9q*-I?>dy;?;}uqfAPBP=a-GbCOi*zGvsM5p1Q(t@|@$3uW)T!;1YH0m_+$m
z$Gs|^Q+^9Y21Z{Jd;3e_PX6`M`PrAX90e9+N`*&ixX;u#IA8tS@w}AI>(}g>b5kXA
dR_DdqvvXBW;1hH`#K6G7;OXk;vd$@?2>^;gZ`%L>

literal 0
HcmV?d00001

diff --git a/doc/html/search/files_0.html b/doc/html/search/files_0.html
new file mode 100644
index 0000000..867c89d
--- /dev/null
+++ b/doc/html/search/files_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_0.js b/doc/html/search/files_0.js
new file mode 100644
index 0000000..77d62c6
--- /dev/null
+++ b/doc/html/search/files_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['csmon_5fwrapper_2ecpp',['CSMOn_wrapper.cpp',['../CSMOn__wrapper_8cpp.html',1,'']]]
+];
diff --git a/doc/html/search/functions_0.html b/doc/html/search/functions_0.html
new file mode 100644
index 0000000..a3f28dc
--- /dev/null
+++ b/doc/html/search/functions_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_0.js b/doc/html/search/functions_0.js
new file mode 100644
index 0000000..7d7f00f
--- /dev/null
+++ b/doc/html/search/functions_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['csmon',['CSMOn',['../classCSMOn.html#a9b25325acfda9b579b3a272ed474480e',1,'CSMOn']]]
+];
diff --git a/doc/html/search/functions_1.html b/doc/html/search/functions_1.html
new file mode 100644
index 0000000..abb1f12
--- /dev/null
+++ b/doc/html/search/functions_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_1.js b/doc/html/search/functions_1.js
new file mode 100644
index 0000000..dc289c3
--- /dev/null
+++ b/doc/html/search/functions_1.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['getbestpos',['getBestPos',['../classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6',1,'CSMOn::getBestPos()'],['../classISearch.html#a9cee257ee19c02341da60440c5cddbd8',1,'ISearch::getBestPos()'],['../classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e',1,'PSO::getBestPos()']]],
+  ['getfitness',['getFitness',['../classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5',1,'CSMOn::getFitness()'],['../classISearch.html#a3504ed6684ca6c82aa79c40b965d5237',1,'ISearch::getFitness()'],['../classPSO.html#a9859c4126970209c8c8f534d4458dbd7',1,'PSO::getFitness()']]],
+  ['getnevals',['getNEvals',['../classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593',1,'CSMOn::getNEvals()'],['../classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639',1,'ISearch::getNEvals()'],['../classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba',1,'PSO::getNEvals()']]],
+  ['getrandomseed',['getRandomSeed',['../classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813',1,'PSO']]]
+];
diff --git a/doc/html/search/functions_2.html b/doc/html/search/functions_2.html
new file mode 100644
index 0000000..6cc194a
--- /dev/null
+++ b/doc/html/search/functions_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_2.js b/doc/html/search/functions_2.js
new file mode 100644
index 0000000..d884ca3
--- /dev/null
+++ b/doc/html/search/functions_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['next',['next',['../classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129',1,'ISearch::next()'],['../classPSO.html#a465d956bdb86e93bc06b6fb016feb70c',1,'PSO::next()']]]
+];
diff --git a/doc/html/search/functions_3.html b/doc/html/search/functions_3.html
new file mode 100644
index 0000000..7a96590
--- /dev/null
+++ b/doc/html/search/functions_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_3.js b/doc/html/search/functions_3.js
new file mode 100644
index 0000000..e239409
--- /dev/null
+++ b/doc/html/search/functions_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['pso',['PSO',['../classPSO.html#a810105b87e4f6fc026edd6b4ef484953',1,'PSO']]]
+];
diff --git a/doc/html/search/functions_4.html b/doc/html/search/functions_4.html
new file mode 100644
index 0000000..7c0a295
--- /dev/null
+++ b/doc/html/search/functions_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_4.js b/doc/html/search/functions_4.js
new file mode 100644
index 0000000..2f49c8a
--- /dev/null
+++ b/doc/html/search/functions_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['run',['run',['../classCSMOn.html#a287ef04ef03f758a2a121057e9798c22',1,'CSMOn']]]
+];
diff --git a/doc/html/search/functions_5.html b/doc/html/search/functions_5.html
new file mode 100644
index 0000000..6a71f6c
--- /dev/null
+++ b/doc/html/search/functions_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/functions_5.js b/doc/html/search/functions_5.js
new file mode 100644
index 0000000..754d3fd
--- /dev/null
+++ b/doc/html/search/functions_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['search',['search',['../CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7',1,'CSMOn_wrapper.cpp']]],
+  ['startup',['startup',['../classISearch.html#a8eabe4ae3ed69ede2646a536f558f2fe',1,'ISearch::startup()'],['../classPSO.html#a4866695395fb314ea732bccde6691ef3',1,'PSO::startup()']]]
+];
diff --git a/doc/html/search/mag_sel.png b/doc/html/search/mag_sel.png
new file mode 100644
index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17
GIT binary patch
literal 563
zcmeAS@N?(olHy`uVBq!ia0y~yU=U$oU=ZeDV_;yI(4)JRfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlM$eqE!P~6AB@W6tBq3J3ELlrv%!>KI{48|@D3^HXcW?Fk07#MeY
zx;TbZ+<G!)cbAf*NZbBfVpamXnDr}|0|kAqI9xF|Ff@3{{y|ivM$XXOSg`nIm`jV<
zONW3Eks}9I<OXC-lD#>1W+|^)#0~pZkN$kUYB?uZb;*>P<#iv<{`%gy@B7i8HPa@a
zY<XIAGHtWsOrJ^TpRWwjVqs$Zs1@L$X*t)g$Uq_?@|wEy)~KZyGX!|pj-HnETOO=)
zT4}0Rpw`qADMo9;w9__APCnV<q2jbRu6}RI?QM)2(@%$JiJJHdFAVU|>N-@l_t>`F
zS6{6bU-bC)`|t6@!v-s^W<3fH-gaA;;b@Ye?`4*TWtoctG(Kd@2(%^IBsBckbh^`p
ziQ#x5!#(xbe|PL3$uD@+pFH{WQwE9t<1?0ZzTS1o#P`@^Lxz_nQVmgSzctvs{ZzGg
z+Tn*2e%Ab3swu;F`DMw4(pZKbx5fS9fB3%G_`fT&7VBp1d%WTP`_AK!mt4-wx&5rf
zO0d^0bNg-n7ngY$ZO%_#_xe$#-1ghN^Ut?0(umO$ui7hj{PDyH9k<n2tGH_Sh=hi=
zu39ypr*40|*=*lkclEBnp8EQ0*SgpB=ReGhxjwc1aO3a4erB_4*FO3G{CAZ!L*$BG
W8K?Y@E@xn1VDNPHb6Mw<&;$UMruU8j

literal 0
HcmV?d00001

diff --git a/doc/html/search/nomatches.html b/doc/html/search/nomatches.html
new file mode 100644
index 0000000..b1ded27
--- /dev/null
+++ b/doc/html/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/pages_0.html b/doc/html/search/pages_0.html
new file mode 100644
index 0000000..8ce1299
--- /dev/null
+++ b/doc/html/search/pages_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/pages_0.js b/doc/html/search/pages_0.js
new file mode 100644
index 0000000..48a1ace
--- /dev/null
+++ b/doc/html/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['convergence_20stabilization_20modeling_20operating_20in_20online_20mode',['Convergence Stabilization Modeling operating in Online Mode',['../index.html',1,'']]]
+];
diff --git a/doc/html/search/search.css b/doc/html/search/search.css
new file mode 100644
index 0000000..4d7612f
--- /dev/null
+++ b/doc/html/search/search.css
@@ -0,0 +1,271 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+    float: left;
+}
+
+#MSearchBox {
+    white-space : nowrap;
+    position: absolute;
+    float: none;
+    display: inline;
+    margin-top: 8px;
+    right: 0px;
+    width: 170px;
+    z-index: 102;
+    background-color: white;
+}
+
+#MSearchBox .left
+{
+    display:block;
+    position:absolute;
+    left:10px;
+    width:20px;
+    height:19px;
+    background:url('search_l.png') no-repeat;
+    background-position:right;
+}
+
+#MSearchSelect {
+    display:block;
+    position:absolute;
+    width:20px;
+    height:19px;
+}
+
+.left #MSearchSelect {
+    left:4px;
+}
+
+.right #MSearchSelect {
+    right:5px;
+}
+
+#MSearchField {
+    display:block;
+    position:absolute;
+    height:19px;
+    background:url('search_m.png') repeat-x;
+    border:none;
+    width:111px;
+    margin-left:20px;
+    padding-left:4px;
+    color: #909090;
+    outline: none;
+    font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+    margin-left:15px;
+}
+
+#MSearchBox .right {
+    display:block;
+    position:absolute;
+    right:10px;
+    top:0px;
+    width:20px;
+    height:19px;
+    background:url('search_r.png') no-repeat;
+    background-position:left;
+}
+
+#MSearchClose {
+    display: none;
+    position: absolute;
+    top: 4px;
+    background : none;
+    border: none;
+    margin: 0px 4px 0px 0px;
+    padding: 0px 0px;
+    outline: none;
+}
+
+.left #MSearchClose {
+    left: 6px;
+}
+
+.right #MSearchClose {
+    right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+    color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #90A5CE;
+    background-color: #F9FAFC;
+    z-index: 1;
+    padding-top: 4px;
+    padding-bottom: 4px;
+    -moz-border-radius: 4px;
+    -webkit-border-top-left-radius: 4px;
+    -webkit-border-top-right-radius: 4px;
+    -webkit-border-bottom-left-radius: 4px;
+    -webkit-border-bottom-right-radius: 4px;
+    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+    font: 8pt Arial, Verdana, sans-serif;
+    padding-left:  2px;
+    padding-right: 12px;
+    border: 0px;
+}
+
+span.SelectionMark {
+    margin-right: 4px;
+    font-family: monospace;
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem {
+    display: block;
+    outline-style: none;
+    color: #000000; 
+    text-decoration: none;
+    padding-left:   6px;
+    padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+    color: #000000; 
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem:hover {
+    color: #FFFFFF;
+    background-color: #3D578C;
+    outline-style: none;
+    text-decoration: none;
+    cursor: pointer;
+    display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+    width: 60ex;
+    height: 15em;
+}
+
+#MSearchResultsWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #000;
+    background-color: #EEF1F7;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+    clear:both; 
+    padding-bottom: 15px;
+}
+
+.SREntry {
+    font-size: 10pt;
+    padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+    font-size: 8pt;
+    padding: 1px 5px;
+}
+
+body.SRPage {
+    margin: 5px 2px;
+}
+
+.SRChildren {
+    padding-left: 3ex; padding-bottom: .5em 
+}
+
+.SRPage .SRChildren {
+    display: none;
+}
+
+.SRSymbol {
+    font-weight: bold; 
+    color: #425E97;
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRScope {
+    display: block;
+    color: #425E97; 
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+    text-decoration: underline;
+}
+
+span.SRScope {
+    padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+    padding: 2px 5px;
+    font-size: 8pt;
+    font-style: italic;
+}
+
+.SRResult {
+    display: none;
+}
+
+DIV.searchresults {
+    margin-left: 10px;
+    margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+    background-color: #F0F3F8;
+}
+
+.pages b {
+   color: white;
+   padding: 5px 5px 3px 5px;
+   background-image: url("../tab_a.png");
+   background-repeat: repeat-x;
+   text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+    line-height: 17px;
+    margin-left: 4px;
+    text-decoration: none;
+}
+
+.hl {
+    font-weight: bold;
+}
+
+#searchresults {
+    margin-bottom: 20px;
+}
+
+.searchpages {
+    margin-top: 10px;
+}
+
diff --git a/doc/html/search/search.js b/doc/html/search/search.js
new file mode 100644
index 0000000..19cfcd6
--- /dev/null
+++ b/doc/html/search/search.js
@@ -0,0 +1,803 @@
+// Search script generated by doxygen
+// Copyright (C) 2009 by Dimitri van Heesch.
+
+// The code in this file is loosly based on main.js, part of Natural Docs,
+// which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL.
+
+var indexSectionsWithContent =
+{
+  0: "_cginprs",
+  1: "_cip",
+  2: "c",
+  3: "cgnprs",
+  4: "p",
+  5: "c"
+};
+
+var indexSectionNames =
+{
+  0: "all",
+  1: "classes",
+  2: "files",
+  3: "functions",
+  4: "typedefs",
+  5: "pages"
+};
+
+function convertToId(search)
+{
+  var result = '';
+  for (i=0;i<search.length;i++)
+  {
+    var c = search.charAt(i);
+    var cn = c.charCodeAt(0);
+    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+    {
+      result+=c;
+    }
+    else if (cn<16) 
+    {
+      result+="_0"+cn.toString(16);
+    }
+    else 
+    {
+      result+="_"+cn.toString(16);
+    }
+  }
+  return result;
+}
+
+function getXPos(item)
+{
+  var x = 0;
+  if (item.offsetWidth)
+  {
+    while (item && item!=document.body)
+    {
+      x   += item.offsetLeft;
+      item = item.offsetParent;
+    }
+  }
+  return x;
+}
+
+function getYPos(item)
+{
+  var y = 0;
+  if (item.offsetWidth)
+  {
+     while (item && item!=document.body)
+     {
+       y   += item.offsetTop;
+       item = item.offsetParent;
+     }
+  }
+  return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+   Parameters:
+   name - The name of the global variable that will be 
+          storing this instance.  Is needed to be able to set timeouts.
+   resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
+   
+  // ---------- Instance variables
+  this.name                  = name;
+  this.resultsPath           = resultsPath;
+  this.keyTimeout            = 0;
+  this.keyTimeoutLength      = 500;
+  this.closeSelectionTimeout = 300;
+  this.lastSearchValue       = "";
+  this.lastResultsPage       = "";
+  this.hideTimeout           = 0;
+  this.searchIndex           = 0;
+  this.searchActive          = false;
+  this.insideFrame           = inFrame;
+  this.searchLabel           = label;
+
+  // ----------- DOM Elements
+
+  this.DOMSearchField = function()
+  {  return document.getElementById("MSearchField");  }
+
+  this.DOMSearchSelect = function()
+  {  return document.getElementById("MSearchSelect");  }
+
+  this.DOMSearchSelectWindow = function()
+  {  return document.getElementById("MSearchSelectWindow");  }
+
+  this.DOMPopupSearchResults = function()
+  {  return document.getElementById("MSearchResults");  }
+
+  this.DOMPopupSearchResultsWindow = function()
+  {  return document.getElementById("MSearchResultsWindow");  }
+
+  this.DOMSearchClose = function()
+  {  return document.getElementById("MSearchClose"); }
+
+  this.DOMSearchBox = function()
+  {  return document.getElementById("MSearchBox");  }
+
+  // ------------ Event Handlers
+
+  // Called when focus is added or removed from the search field.
+  this.OnSearchFieldFocus = function(isActive)
+  {
+    this.Activate(isActive);
+  }
+
+  this.OnSearchSelectShow = function()
+  {
+    var searchSelectWindow = this.DOMSearchSelectWindow();
+    var searchField        = this.DOMSearchSelect();
+
+    if (this.insideFrame)
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      left += searchField.offsetWidth + 6;
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      left -= searchSelectWindow.offsetWidth;
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+    else
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+
+    // stop selection hide timer
+    if (this.hideTimeout) 
+    {
+      clearTimeout(this.hideTimeout);
+      this.hideTimeout=0;
+    }
+    return false; // to avoid "image drag" default event
+  }
+
+  this.OnSearchSelectHide = function()
+  {
+    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+                                  this.closeSelectionTimeout);
+  }
+
+  // Called when the content of the search field is changed.
+  this.OnSearchFieldChange = function(evt)
+  {
+    if (this.keyTimeout) // kill running timer
+    {
+      clearTimeout(this.keyTimeout);
+      this.keyTimeout = 0;
+    }
+
+    var e  = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 || e.keyCode==13)
+    {
+      if (e.shiftKey==1)
+      {
+        this.OnSearchSelectShow();
+        var win=this.DOMSearchSelectWindow(); 
+        for (i=0;i<win.childNodes.length;i++)
+        {
+          var child = win.childNodes[i]; // get span within a
+          if (child.className=='SelectItem')
+          {
+            child.focus();
+            return;
+          }
+        }
+        return;
+      }
+      else if (window.frames.MSearchResults.searchResults)
+      {
+        var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+        if (elem) elem.focus();
+      }
+    }
+    else if (e.keyCode==27) // Escape out of the search field
+    {
+      this.DOMSearchField().blur();
+      this.DOMPopupSearchResultsWindow().style.display = 'none';
+      this.DOMSearchClose().style.display = 'none';
+      this.lastSearchValue = '';
+      this.Activate(false);
+      return;
+    }
+
+    // strip whitespaces
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+    if (searchValue != this.lastSearchValue) // search value has changed
+    {
+      if (searchValue != "") // non-empty search
+      {
+        // set timer for search update
+        this.keyTimeout = setTimeout(this.name + '.Search()',
+                                     this.keyTimeoutLength);
+      }
+      else // empty search field
+      {
+        this.DOMPopupSearchResultsWindow().style.display = 'none';
+        this.DOMSearchClose().style.display = 'none';
+        this.lastSearchValue = '';
+      }
+    }
+  }
+
+  this.SelectItemCount = function(id)
+  {
+    var count=0;
+    var win=this.DOMSearchSelectWindow(); 
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        count++;
+      }
+    }
+    return count;
+  }
+
+  this.SelectItemSet = function(id)
+  {
+    var i,j=0;
+    var win=this.DOMSearchSelectWindow(); 
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        var node = child.firstChild;
+        if (j==id)
+        {
+          node.innerHTML='&#8226;';
+        }
+        else
+        {
+          node.innerHTML='&#160;';
+        }
+        j++;
+      }
+    }
+  }
+
+  // Called when an search filter selection is made.
+  // set item with index id as the active item
+  this.OnSelectItem = function(id)
+  {
+    this.searchIndex = id;
+    this.SelectItemSet(id);
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+    if (searchValue!="" && this.searchActive) // something was found -> do a search
+    {
+      this.Search();
+    }
+  }
+
+  this.OnSearchSelectKey = function(evt)
+  {
+    var e = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+    {
+      this.searchIndex++;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==38 && this.searchIndex>0) // Up
+    {
+      this.searchIndex--;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==13 || e.keyCode==27)
+    {
+      this.OnSelectItem(this.searchIndex);
+      this.CloseSelectionWindow();
+      this.DOMSearchField().focus();
+    }
+    return false;
+  }
+
+  // --------- Actions
+
+  // Closes the results window.
+  this.CloseResultsWindow = function()
+  {
+    this.DOMPopupSearchResultsWindow().style.display = 'none';
+    this.DOMSearchClose().style.display = 'none';
+    this.Activate(false);
+  }
+
+  this.CloseSelectionWindow = function()
+  {
+    this.DOMSearchSelectWindow().style.display = 'none';
+  }
+
+  // Performs a search.
+  this.Search = function()
+  {
+    this.keyTimeout = 0;
+
+    // strip leading whitespace
+    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+    var code = searchValue.toLowerCase().charCodeAt(0);
+    var idxChar = searchValue.substr(0, 1).toLowerCase();
+    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+    {
+      idxChar = searchValue.substr(0, 2);
+    }
+
+    var resultsPage;
+    var resultsPageWithSearch;
+    var hasResultsPage;
+
+    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+    if (idx!=-1)
+    {
+       var hexCode=idx.toString(16);
+       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+       hasResultsPage = true;
+    }
+    else // nothing available for this search term
+    {
+       resultsPage = this.resultsPath + '/nomatches.html';
+       resultsPageWithSearch = resultsPage;
+       hasResultsPage = false;
+    }
+
+    window.frames.MSearchResults.location = resultsPageWithSearch;  
+    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+    if (domPopupSearchResultsWindow.style.display!='block')
+    {
+       var domSearchBox = this.DOMSearchBox();
+       this.DOMSearchClose().style.display = 'inline';
+       if (this.insideFrame)
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         domPopupSearchResultsWindow.style.position = 'relative';
+         domPopupSearchResultsWindow.style.display  = 'block';
+         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+         domPopupSearchResultsWindow.style.width    = width + 'px';
+         domPopupSearchResults.style.width          = width + 'px';
+       }
+       else
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
+         domPopupSearchResultsWindow.style.display = 'block';
+         left -= domPopupSearchResults.offsetWidth;
+         domPopupSearchResultsWindow.style.top     = top  + 'px';
+         domPopupSearchResultsWindow.style.left    = left + 'px';
+       }
+    }
+
+    this.lastSearchValue = searchValue;
+    this.lastResultsPage = resultsPage;
+  }
+
+  // -------- Activation Functions
+
+  // Activates or deactivates the search panel, resetting things to 
+  // their default values if necessary. 
+  this.Activate = function(isActive)
+  {
+    if (isActive || // open it
+        this.DOMPopupSearchResultsWindow().style.display == 'block' 
+       )
+    {
+      this.DOMSearchBox().className = 'MSearchBoxActive';
+
+      var searchField = this.DOMSearchField();
+
+      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+      {  
+        searchField.value = '';  
+        this.searchActive = true;
+      }
+    }
+    else if (!isActive) // directly remove the panel
+    {
+      this.DOMSearchBox().className = 'MSearchBoxInactive';
+      this.DOMSearchField().value   = this.searchLabel;
+      this.searchActive             = false;
+      this.lastSearchValue          = ''
+      this.lastResultsPage          = '';
+    }
+  }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+    // The number of matches from the last run of <Search()>.
+    this.lastMatchCount = 0;
+    this.lastKey = 0;
+    this.repeatOn = false;
+
+    // Toggles the visibility of the passed element ID.
+    this.FindChildElement = function(id)
+    {
+      var parentElement = document.getElementById(id);
+      var element = parentElement.firstChild;
+
+      while (element && element!=parentElement)
+      {
+        if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+        {
+          return element;
+        }
+
+        if (element.nodeName == 'DIV' && element.hasChildNodes())
+        {  
+           element = element.firstChild;  
+        }
+        else if (element.nextSibling)
+        {  
+           element = element.nextSibling;  
+        }
+        else
+        {
+          do
+          {
+            element = element.parentNode;
+          }
+          while (element && element!=parentElement && !element.nextSibling);
+
+          if (element && element!=parentElement)
+          {  
+            element = element.nextSibling;  
+          }
+        }
+      }
+    }
+
+    this.Toggle = function(id)
+    {
+      var element = this.FindChildElement(id);
+      if (element)
+      {
+        if (element.style.display == 'block')
+        {
+          element.style.display = 'none';
+        }
+        else
+        {
+          element.style.display = 'block';
+        }
+      }
+    }
+
+    // Searches for the passed string.  If there is no parameter,
+    // it takes it from the URL query.
+    //
+    // Always returns true, since other documents may try to call it
+    // and that may or may not be possible.
+    this.Search = function(search)
+    {
+      if (!search) // get search word from URL
+      {
+        search = window.location.search;
+        search = search.substring(1);  // Remove the leading '?'
+        search = unescape(search);
+      }
+
+      search = search.replace(/^ +/, ""); // strip leading spaces
+      search = search.replace(/ +$/, ""); // strip trailing spaces
+      search = search.toLowerCase();
+      search = convertToId(search);
+
+      var resultRows = document.getElementsByTagName("div");
+      var matches = 0;
+
+      var i = 0;
+      while (i < resultRows.length)
+      {
+        var row = resultRows.item(i);
+        if (row.className == "SRResult")
+        {
+          var rowMatchName = row.id.toLowerCase();
+          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+          if (search.length<=rowMatchName.length && 
+             rowMatchName.substr(0, search.length)==search)
+          {
+            row.style.display = 'block';
+            matches++;
+          }
+          else
+          {
+            row.style.display = 'none';
+          }
+        }
+        i++;
+      }
+      document.getElementById("Searching").style.display='none';
+      if (matches == 0) // no results
+      {
+        document.getElementById("NoMatches").style.display='block';
+      }
+      else // at least one result
+      {
+        document.getElementById("NoMatches").style.display='none';
+      }
+      this.lastMatchCount = matches;
+      return true;
+    }
+
+    // return the first item with index index or higher that is visible
+    this.NavNext = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index++;
+      }
+      return focusItem;
+    }
+
+    this.NavPrev = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index--;
+      }
+      return focusItem;
+    }
+
+    this.ProcessKeys = function(e)
+    {
+      if (e.type == "keydown") 
+      {
+        this.repeatOn = false;
+        this.lastKey = e.keyCode;
+      }
+      else if (e.type == "keypress")
+      {
+        if (!this.repeatOn)
+        {
+          if (this.lastKey) this.repeatOn = true;
+          return false; // ignore first keypress after keydown
+        }
+      }
+      else if (e.type == "keyup")
+      {
+        this.lastKey = 0;
+        this.repeatOn = false;
+      }
+      return this.lastKey!=0;
+    }
+
+    this.Nav = function(evt,itemIndex) 
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        var newIndex = itemIndex-1;
+        var focusItem = this.NavPrev(newIndex);
+        if (focusItem)
+        {
+          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+          if (child && child.style.display == 'block') // children visible
+          { 
+            var n=0;
+            var tmpElem;
+            while (1) // search for last child
+            {
+              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+              if (tmpElem)
+              {
+                focusItem = tmpElem;
+              }
+              else // found it!
+              {
+                break;
+              }
+              n++;
+            }
+          }
+        }
+        if (focusItem)
+        {
+          focusItem.focus();
+        }
+        else // return focus to search field
+        {
+           parent.document.getElementById("MSearchField").focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = itemIndex+1;
+        var focusItem;
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem && elem.style.display == 'block') // children visible
+        {
+          focusItem = document.getElementById('Item'+itemIndex+'_c0');
+        }
+        if (!focusItem) focusItem = this.NavNext(newIndex);
+        if (focusItem)  focusItem.focus();
+      }
+      else if (this.lastKey==39) // Right
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'block';
+      }
+      else if (this.lastKey==37) // Left
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'none';
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+
+    this.NavChild = function(evt,itemIndex,childIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        if (childIndex>0)
+        {
+          var newIndex = childIndex-1;
+          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+        }
+        else // already at first child, jump to parent
+        {
+          document.getElementById('Item'+itemIndex).focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = childIndex+1;
+        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+        if (!elem) // last child, jump to parent next parent
+        {
+          elem = this.NavNext(itemIndex+1);
+        }
+        if (elem)
+        {
+          elem.focus();
+        } 
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+}
+
+function setKeyActions(elem,action)
+{
+  elem.setAttribute('onkeydown',action);
+  elem.setAttribute('onkeypress',action);
+  elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+  elem.setAttribute('class',attr);
+  elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+  var results = document.getElementById("SRResults");
+  for (var e=0; e<searchData.length; e++)
+  {
+    var id = searchData[e][0];
+    var srResult = document.createElement('div');
+    srResult.setAttribute('id','SR_'+id);
+    setClassAttr(srResult,'SRResult');
+    var srEntry = document.createElement('div');
+    setClassAttr(srEntry,'SREntry');
+    var srLink = document.createElement('a');
+    srLink.setAttribute('id','Item'+e);
+    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+    setClassAttr(srLink,'SRSymbol');
+    srLink.innerHTML = searchData[e][1][0];
+    srEntry.appendChild(srLink);
+    if (searchData[e][1].length==2) // single result
+    {
+      srLink.setAttribute('href',searchData[e][1][1][0]);
+      if (searchData[e][1][1][1])
+      {
+       srLink.setAttribute('target','_parent');
+      }
+      var srScope = document.createElement('span');
+      setClassAttr(srScope,'SRScope');
+      srScope.innerHTML = searchData[e][1][1][2];
+      srEntry.appendChild(srScope);
+    }
+    else // multiple results
+    {
+      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+      var srChildren = document.createElement('div');
+      setClassAttr(srChildren,'SRChildren');
+      for (var c=0; c<searchData[e][1].length-1; c++)
+      {
+        var srChild = document.createElement('a');
+        srChild.setAttribute('id','Item'+e+'_c'+c);
+        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+        setClassAttr(srChild,'SRScope');
+        srChild.setAttribute('href',searchData[e][1][c+1][0]);
+        if (searchData[e][1][c+1][1])
+        {
+         srChild.setAttribute('target','_parent');
+        }
+        srChild.innerHTML = searchData[e][1][c+1][2];
+        srChildren.appendChild(srChild);
+      }
+      srEntry.appendChild(srChildren);
+    }
+    srResult.appendChild(srEntry);
+    results.appendChild(srResult);
+  }
+}
+
diff --git a/doc/html/search/search_l.png b/doc/html/search/search_l.png
new file mode 100644
index 0000000000000000000000000000000000000000..c872f4da4a01d0754f923e6c94fd8159c0621bd1
GIT binary patch
literal 604
zcmeAS@N?(olHy`uVBq!ia0y~yU=U$oU=ZeDV_;yI(4)JRfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlM$eqE!P~6AB@W6tBq3J3ELlrv%!>KI{48|@D3^HXcW?Fk07#JUU
zx;TbZ+*%W2yZTmuMBTZQmWIB691Pq<-UPUa>(AXKdh6msy}Q;TUJL7&mF#u?-}0BW
z>DJO_**jew3tXCyX{?p^yr<V&k-y#~WB%Jc1#<KHzstC}Sh%jgp1dvhdG77JUF&}5
zZN7OYXZvlI=Q2Hpf4Fs&-jwY=^Lfvi43nz2yWX|um{m_c{nW*3ZrifV01;KY#O0S0
zKmYu5vchKH)zZI}OM?WLWhzbea=dK9p?E-|+f{=hVQbV<^~oofCvE((DQd0K{PTwm
zcsw)@TDr&VW>C2G)@;7t^7THKYXa9_PmB~RiEW=EG~Gc*jC*p&y=z&fcQ@%sv@t5O
z=&^pcSs$r4eZK1{i|0GoY&e?S76w$5tlgx%aLT7lwaE_y)4qSd^!+cp{=C`6p`n{6
zh8~kRWUxp2ljPOs&tkkR*$QI1cf2mVW+Yhp?f2h{udXf?xVZgmm268QhtjTj0fAH2
z_dWh|=WW>!`3IdYkB%4Z{PWI&ujame)c*TrIfvX9f7Iq^y8W==g^n0Eiz9>5t{pP}
z(pmRa%==zxAkmY)S<+Q?Zm_3|g$$pC?&ov)%n6z;KVDSMyZ!$A{pnsyk6#Q92^9@G
zwO@o=QLd+bu3XgGX$%4Ci_BN8GUGk0p*GobVdktumi<!?zGq}GeR?(S!dsrd3=9km
Mp00i_>zopr04E;^4gdfE

literal 0
HcmV?d00001

diff --git a/doc/html/search/search_m.png b/doc/html/search/search_m.png
new file mode 100644
index 0000000000000000000000000000000000000000..b429a16ba641960da1e52e5da85dc80fd82635c8
GIT binary patch
literal 158
zcmeAS@N?(olHy`uVBq!ia0y~yU|?ckU=Zd2k*0Cpz6=ZuEa{HEjtmUfZd~z?Fk)a}
zkSuYHC<)F_D=AMbN@Z|N$xljE@XSq2PYp^<OsOn9nQFtpz+m9%;uunKD@jLRKRqEK
z!KUtyMaQonAC)_P{r_)2At{N0IVwO$KsqAt?k?6P3`{%>OWFBt>K?i-XJBAp@O1Ta
JS?83{1OS@7FGc_W

literal 0
HcmV?d00001

diff --git a/doc/html/search/search_r.png b/doc/html/search/search_r.png
new file mode 100644
index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a
GIT binary patch
literal 612
zcmeAS@N?(olHy`uVBq!ia0y~yU=U(pU=ZeDV_;yIJ1O=P0|NtRfk$L90|U1(2s1Lw
znj^u$z@U)q5#-CjkUN8cp}3EM;eiDML(^3ThAMUjhErP@7>r#Q7-Y&?%(V70FfhLI
zba4!+xV7ZU{#8<rB5WV>zs=vomAy2qd&#6LnKjHCBRvI!?(cCvqrJpudOF7vL7ku&
zCzXUQ6HTW8N5uuxuZC{k{ch8_cV|2&Y8>Kywrcs@!~MlGezuib$sXzya#HzOQx~Np
zW<SkqY24PRzd?G_|GF(!?E8Hq!N7tuHL^{`Q-G!MgH8VCn>lq6(@LXPU%h8C`)oY>
ziSK_WPnhzlp*6ANX_4pSj}gZT{~X-*_Icmq7KQ^$rl>0_HBAu;@>-JFrO~w^LdQUc
zul4n=_t{%-`L4d&WpeC>CVP*eMi-M()4JCNJj^>|_}UUz1f5#``RAYX{rBsaK4?5D
z!JN!9YuUm8jRip~7sRd4W{6vJ{k1!PTc2ZSXyPn2t*Kl&x3@JZRFs)*IsR>O=;~0l
zmWnkp@t=1teQl+4x@q0(-ONieZ`};m>|(lXGBZ))ba$Bbv44JL<)SVw59V+y{aO{%
z?4c>x_OPvEU%ctXyzR};D{VtVYcH^>E>$^a>8m!`b^GmFCzk-dNKcN&uT^t>mR~M+
z>d0qU@RonGj`fq5@jsP+P0l@M8Mb<=1Yi67CWVT-dD|~nzf@mT%^|4h8(eTs@c71(
z*z5DprrDnR>3zKL9pC!`6RC&w{{ttf+{oLWDB?Qb@_D{w^7g*RF2`&4vopk(yY(38
T+?dP2z`)??>gTe~DWM4f%J>KN

literal 0
HcmV?d00001

diff --git a/doc/html/search/typedefs_0.html b/doc/html/search/typedefs_0.html
new file mode 100644
index 0000000..5f65d74
--- /dev/null
+++ b/doc/html/search/typedefs_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/typedefs_0.js b/doc/html/search/typedefs_0.js
new file mode 100644
index 0000000..74379b3
--- /dev/null
+++ b/doc/html/search/typedefs_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['param',['Param',['../CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1',1,'CSMOn_wrapper.cpp']]]
+];
diff --git a/doc/html/struct__Param-members.html b/doc/html/struct__Param-members.html
new file mode 100644
index 0000000..d4e50cd
--- /dev/null
+++ b/doc/html/struct__Param-members.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">_Param Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="struct__Param.html">_Param</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>c</b> (defined in <a class="el" href="struct__Param.html">_Param</a>)</td><td class="entry"><a class="el" href="struct__Param.html">_Param</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>d</b> (defined in <a class="el" href="struct__Param.html">_Param</a>)</td><td class="entry"><a class="el" href="struct__Param.html">_Param</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>f</b> (defined in <a class="el" href="struct__Param.html">_Param</a>)</td><td class="entry"><a class="el" href="struct__Param.html">_Param</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>i</b> (defined in <a class="el" href="struct__Param.html">_Param</a>)</td><td class="entry"><a class="el" href="struct__Param.html">_Param</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>l</b> (defined in <a class="el" href="struct__Param.html">_Param</a>)</td><td class="entry"><a class="el" href="struct__Param.html">_Param</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>name</b> (defined in <a class="el" href="struct__Param.html">_Param</a>)</td><td class="entry"><a class="el" href="struct__Param.html">_Param</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:54:05 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/struct__Param.html b/doc/html/struct__Param.html
new file mode 100644
index 0000000..64ef722
--- /dev/null
+++ b/doc/html/struct__Param.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: _Param Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">_Param Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Contains a parameter received from / sent to the Python caller.  
+ <a href="struct__Param.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ac547bee005d20081bcac4b2e347011f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac547bee005d20081bcac4b2e347011f1"></a>
+char *&#160;</td><td class="memItemRight" valign="bottom"><b>name</b></td></tr>
+<tr class="separator:ac547bee005d20081bcac4b2e347011f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff85041148fac4f0a6a066dcf291f301"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff85041148fac4f0a6a066dcf291f301"></a>
+char&#160;</td><td class="memItemRight" valign="bottom"><b>c</b></td></tr>
+<tr class="separator:aff85041148fac4f0a6a066dcf291f301"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b019b7151eaacdeb2e5ddfd31ac96fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b019b7151eaacdeb2e5ddfd31ac96fa"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>i</b></td></tr>
+<tr class="separator:a5b019b7151eaacdeb2e5ddfd31ac96fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a634a0fb95ba41349d69f4b5095531ddf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a634a0fb95ba41349d69f4b5095531ddf"></a>
+long&#160;</td><td class="memItemRight" valign="bottom"><b>l</b></td></tr>
+<tr class="separator:a634a0fb95ba41349d69f4b5095531ddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56df5e8e86e4f51c7f3031731951d1e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56df5e8e86e4f51c7f3031731951d1e9"></a>
+float&#160;</td><td class="memItemRight" valign="bottom"><b>f</b></td></tr>
+<tr class="separator:a56df5e8e86e4f51c7f3031731951d1e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8cfc8683385e1ecbd2daedd1a05eb787"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cfc8683385e1ecbd2daedd1a05eb787"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>d</b></td></tr>
+<tr class="separator:a8cfc8683385e1ecbd2daedd1a05eb787"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Contains a parameter received from / sent to the Python caller. </p>
+
+<p>Definition at line <a class="el" href="CSMOn__wrapper_8cpp_source.html#l00049">49</a> of file <a class="el" href="CSMOn__wrapper_8cpp_source.html">CSMOn_wrapper.cpp</a>.</p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>python/<a class="el" href="CSMOn__wrapper_8cpp_source.html">CSMOn_wrapper.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/struct__point-members.html b/doc/html/struct__point-members.html
new file mode 100644
index 0000000..c775d93
--- /dev/null
+++ b/doc/html/struct__point-members.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   &#160;<span id="projectnumber">1</span>
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">_point Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="struct__point.html">_point</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>_point</b>(int _x, int _y) (defined in <a class="el" href="struct__point.html">_point</a>)</td><td class="entry"><a class="el" href="struct__point.html">_point</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>x</b> (defined in <a class="el" href="struct__point.html">_point</a>)</td><td class="entry"><a class="el" href="struct__point.html">_point</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>y</b> (defined in <a class="el" href="struct__point.html">_point</a>)</td><td class="entry"><a class="el" href="struct__point.html">_point</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 11:54:05 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/struct__point.html b/doc/html/struct__point.html
new file mode 100644
index 0000000..99a03d4
--- /dev/null
+++ b/doc/html/struct__point.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.7"/>
+<title>CSMOn: _point Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">CSMOn
+   </div>
+   <div id="projectbrief">Convergence Stabilization Modeling operating in Online mode</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.7 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">_point Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A point representing the number of evaluations and the respective fitness value.  
+ <a href="struct__point.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="CSMOn_8hpp_source.html">CSMOn.hpp</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a57c9fc97f1ffeabe2bea2d95439b426e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57c9fc97f1ffeabe2bea2d95439b426e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>_point</b> (int _x, int _y)</td></tr>
+<tr class="separator:a57c9fc97f1ffeabe2bea2d95439b426e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:aab3e88bcfd12e8f43ff8b95a9a5b62c4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab3e88bcfd12e8f43ff8b95a9a5b62c4"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>x</b></td></tr>
+<tr class="separator:aab3e88bcfd12e8f43ff8b95a9a5b62c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad466443e70f7ff7bcb1d2f8fda2c7168"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad466443e70f7ff7bcb1d2f8fda2c7168"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>y</b></td></tr>
+<tr class="separator:ad466443e70f7ff7bcb1d2f8fda2c7168"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A point representing the number of evaluations and the respective fitness value. </p>
+<dl class="section date"><dt>Date</dt><dd>04/Mar/2017 </dd></dl>
+<dl class="section author"><dt>Author</dt><dd>Peter Frank Perroni (<a href="#" onclick="location.href='mai'+'lto:'+'pfp'+'er'+'ron'+'i@'+'gma'+'il'+'.co'+'m'; return false;">pfper<span style="display: none;">.nosp@m.</span>roni<span style="display: none;">.nosp@m.</span>@gmai<span style="display: none;">.nosp@m.</span>l.co<span style="display: none;">.nosp@m.</span>m</a>) </dd></dl>
+
+<p>Definition at line <a class="el" href="CSMOn_8hpp_source.html#l00060">60</a> of file <a class="el" href="CSMOn_8hpp_source.html">CSMOn.hpp</a>.</p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>cpp/<a class="el" href="CSMOn_8hpp_source.html">CSMOn.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 3 2017 13:53:13 for CSMOn by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.7
+</small></address>
+</body>
+</html>
diff --git a/doc/html/sync_off.png b/doc/html/sync_off.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc
GIT binary patch
literal 853
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuL8WjtLRLn;{G-u2E1370tV
z@&6M;Pc`G27QV|oXU%N$WH-Jg(YrE9g*Ew%0-L8{nBhi2U5ya&ZyPsW(9>e&EKzLo
zj$V4CcWDQI%Ze>&ixYA*e&noFikz~<>{$AlkYBaii__oT*~z&vrP{*&*_pXJzgs`Q
z^M20e(zmzj<r1tEH@dA6>0RXXq|5&31_=@IBe@Lfl?;5Rj@n(Eo5L&_x_<B6KYu%4
zh{t!^H}t#`Sr98DCfE?EAtvAD_i>{|+FwKV4cFufe~HTF>83tf@uOrHL++y!JeS!F
zq-&FA|5V++a_jY;b++@_4cNDAw(l}5W|`k@&@gwsh5Uhu*73qz3f<u~sxeXvq9hJ)
z5Sz|z_o8EOPTmTp0+E$^iN~wCHA}47ZYd;5Ddf$cCA5BaznSTVMGK9dAH8DF&^OP{
z|H76BrQh;$mn=HNoN#?DW7L}PEay7AiPB=%_OTggKjf0Hu9jNapLSRHI)m@C?az)*
zeRFfqj0A<dvsFtS&9>}4dhFYZgF3O<i;jfvnJHJgarWHU?hf<i>oY%PG%VP*ZOz>C
z*Gdh!az0D)PQSFx#^<%QVwRS7(DiVA?u!z}dA?Kc$cWEfopp2T#(#}JH<>o<@#FZx
z&6sxO``ysTm#u^ttmhxM&AhAi@6tjUE4wqhrb$`dI~#K(`SJOR9~nWLPQ7RkEK%8i
zUw-)th5l6w(o%N)u`zM_e=~Y&n%s^Qb6dS$-<Ov9(_gMS{Q9T<e}A4ki4Q*2Ht0;u
zvY-D|&-B);T>Clyd*`p~i}-J}MtMgHZ^7GV8jI`glW+fG-J`g7cB0|Zd(-<q-B>Ao
zXP-G=$`x;`rk|H2gd{uPXr3}|x+6RD!I=lK4LTb=8n$X@|M>Q#RL-V`FJZe6bB43|
z&MR!GXSwEIpDQtcM#&w9Zm!QBDse`t3^{tQ5>weOJo)Q7h3QPA_(|59qj%oC>%7ZQ
z{Dix9$6uG<aT!%F>-av@%ZjiE&0cnR;r`ef<v$GT9mKCszt$ejFO$7<noSMUEDgTn
zS`Bx1rW`NvWqfIM_v4S%H*{Vd{k<r5iaNg#?~jPf@#1-(79Oi%zVVk^KY4lDJh4aq
Q3=9kmp00i_>zopr0A%8e#{d8T

literal 0
HcmV?d00001

diff --git a/doc/html/sync_on.png b/doc/html/sync_on.png
new file mode 100644
index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76
GIT binary patch
literal 845
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuL8MLb;`Ln;{G-i`MNiIh3;
z@x8_4C7+jPE;rFlH#^2Ad-|$ccA(~pD~eqPmqLTQZ?(3(T3D~YJAmI+;Go?b?|xlv
z?}M8JFY1XzPT41t;u?_X*!g3F#L{iEqk=ELzcbg`xO`XFwDr^Pv#(E2d-r}$asBf-
z;oiqT>NTAF;j(sxSmH$WHIL*A<G*xdFXBJY!+XG`??>R4BkviVS8RLw@%(?`^rM^~
zc??=2o2&|>SQwTa)T|Tu`l#WB&tC&(kKVA4*LmdTRp|=s?{uE5x<W90*$lIWmlmqG
zzSgf1eO><QX6X6-Ofy(lZ5BVmUCUz6Y2P5Z-B|d*fq5&tI1fzmmJt@4y1*ghFauBG
z#t(_dp9zGfb~ErWu@?WVdu_Do&1AJ(YED{?M{=^B?RxVjQ|t5!ozu_X?*7iemVaz<
z$P}HF`sf*ZSos)?b+ryk9S~@><7a=`ewyn!v(L%-&(rF&XIxtFvRqlq(KX9Ew9@YP
ztkWmIs#R}YWHCM0)H`zxca~IEvy0Y#zrJgk>E(ybT~<xXt$MkNW#=#N+xs?lZ1Yuo
zw&ZN~1^fP4`G42MKfRn2@m5*pQr)y2Yb3>9T^GG{F{118#GgU+H?<mFe>Yuix;~lp
zgX<kWYqQm<N`V@iZrV=U?^<<unW^`UJ=b<ji0A1y{8Z(%%Ih`v#)zIbmS$p4S7rIc
znOC#_eC#EE@w?&POb1m9b#vd9@iBpOlrM+&oc>t<_kZPA&hUI*hLap36&8DnmzJ$x
z^`_=}aNZqB7M{ZRT<*IsIp5jICB3*R@iy8kLT9f@bjYvjpvABEeCgQtFR`KIZWc>c
zRn<}Tqi;@Z%k-Sb-}kBfe6fP$!iMR+SG|9HedHY1*TXy`a;?w`>8&SK%~ouA)v+tK
z?DmI@M|(5F%ck{ad|`gi($M+()rL#LE134FKVv-8wEZJ%P4xXYzmCQ=L>9T&+Wd9-
z9sA_?_u_{0U%M@4?&4!`ej{Yh&3}Mr#q<)BuMbzU_bv2#+}<B9+I?~(*MxUPdy=z!
z8Bfl5Q&FQZ%XQ@szbl<{emE`?`nP&oL)4y+?OC6BC%jXZp1FL{B9po43=9kmp00i_
I>zopr0HCv!aR2}S

literal 0
HcmV?d00001

diff --git a/doc/html/tab_a.png b/doc/html/tab_a.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247
GIT binary patch
literal 142
zcmeAS@N?(olHy`uVBq!ia0y~yU|?imU{K*;Vqjo6E_OVcfq@~^)5S5Qg7NKKZ>|Od
z0cZ96B^q5F(MR__P`y*}U-{<Bwa+;?f6hJl?ejAE@MWpWyv8M*o{|bO#@ZA1{BV6-
y7sKx&w^!bB{p|-YCYAec-~a7@ZGGg|_*afhCXw?V*D^3LFnGH9xvX<aXaWFRgEU3}

literal 0
HcmV?d00001

diff --git a/doc/html/tab_b.png b/doc/html/tab_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18
GIT binary patch
literal 169
zcmeAS@N?(olHy`uVBq!ia0y~yU|?imU{K*;Vqjo6E_OVcfq|jG)5S5Qg7NKLU%qAq
z5!Z*ucVD=&V+UVp!lMIQ!VE6RFF00fRl*+Ya&Xgx;{8w7HEsKQx^(G}nn@KuMc?f`
zVE12A+;BI)n)HI)BNps;f^S}|xZ`sm^tX(#;H-O_1de3#xlZeP>R;TlXp&@OUd4k;
bujDU#OZjc86Uky=U|{fc^>bP0l+XkKX6!_Y

literal 0
HcmV?d00001

diff --git a/doc/html/tab_h.png b/doc/html/tab_h.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd5cb705488e60fcf30f56fcc951dee74f3b095b
GIT binary patch
literal 177
zcmeAS@N?(olHy`uVBq!ia0y~yU|?imU{K*;Vqjo6E_OVcfq|jI)5S5Qg7NKLU!j8z
z0&NfH)d?=WbL`wC*RqcNQc8+bH%&~@x?aTMUMOwbRlVna@ZIGTp1)pu`J~5jPLWdo
zxUWB=55zOKFM1roR#tiX-=&SV+rymG(w;pNsowCdw~OQRmZ0ZzRO7!s|KGRh+x88;
jeC&e9i%QeCY1pS{h{a^u)f6)@Ffe$!`njxgN@xNAc-%<D

literal 0
HcmV?d00001

diff --git a/doc/html/tab_s.png b/doc/html/tab_s.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50
GIT binary patch
literal 184
zcmeAS@N?(olHy`uVBq!ia0y~yU|?imU{K*;Vqjo6E_OVcfq|jk)5S5Qg7NL$M$RS&
z28WA_?E{5GT9+uzTBN$nbK>-_v}tD1(px+ZKM8EMxhM7L>%R%H^HPcw&el&VwwLPg
zx4roBW4ZbnxAs1Tw;#Ug))gJ@jh^$OYwa7UHMz}_*VZ&k-CciSZ`V~f&B$G<+{+X4
q#Lwth3OX&AIccTh#h#eItTsoL|GaxQRi1%?fx*+&&t;ucLK6Uo#7a&8

literal 0
HcmV?d00001

diff --git a/doc/html/tabs.css b/doc/html/tabs.css
new file mode 100644
index 0000000..9cf578f
--- /dev/null
+++ b/doc/html/tabs.css
@@ -0,0 +1,60 @@
+.tabs, .tabs2, .tabs3 {
+    background-image: url('tab_b.png');
+    width: 100%;
+    z-index: 101;
+    font-size: 13px;
+    font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+.tabs2 {
+    font-size: 10px;
+}
+.tabs3 {
+    font-size: 9px;
+}
+
+.tablist {
+    margin: 0;
+    padding: 0;
+    display: table;
+}
+
+.tablist li {
+    float: left;
+    display: table-cell;
+    background-image: url('tab_b.png');
+    line-height: 36px;
+    list-style: none;
+}
+
+.tablist a {
+    display: block;
+    padding: 0 20px;
+    font-weight: bold;
+    background-image:url('tab_s.png');
+    background-repeat:no-repeat;
+    background-position:right;
+    color: #283A5D;
+    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+    text-decoration: none;
+    outline: none;
+}
+
+.tabs3 .tablist a {
+    padding: 0 10px;
+}
+
+.tablist a:hover {
+    background-image: url('tab_h.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+    text-decoration: none;
+}
+
+.tablist li.current a {
+    background-image: url('tab_a.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
diff --git a/python/CSMOn.py b/python/CSMOn.py
new file mode 100644
index 0000000..eac9810
--- /dev/null
+++ b/python/CSMOn.py
@@ -0,0 +1,113 @@
+# Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# Additionally, if used for any scientific purpose, the following reference
+# must be cited:
+# 
+# Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.
+# 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic
+# Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,
+# pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+# CSMOn.cpp
+#
+# Created on: 02/Jul/2017
+# Author: Peter Frank Perroni (pfperroni@gmail.com)
+#
+# This module contains all configuration required to call CSMOn C++ API.
+
+import ctypes
+from ctypes import *
+
+# Send and receive parameters through this object.
+class Param(ctypes.Structure):
+    _fields_ = [('name', ctypes.c_char_p),
+                ('c', ctypes.c_char),
+                ('i', ctypes.c_int),
+                ('l', ctypes.c_long),
+                ('f', ctypes.c_float),
+                ('d', ctypes.c_double)]
+
+# List of parameters.
+class ParamArrayType:
+    def from_param(self, param):
+        typename = type(param).__name__
+        if hasattr(self, 'from_' + typename):
+            return getattr(self, 'from_' + typename)(param)
+        elif isinstance(param, ctypes.Array):
+            return param
+        else:
+            raise TypeError("Can't convert %s" % typename)
+
+    # Cast from array.array objects
+    def from_array(self, param):
+        if param.typecode != 'd':
+            raise TypeError('must be an array of param')
+        ptr, _ = param.buffer_info()
+        return ctypes.cast(ptr, ctypes.POINTER(Param))
+
+    # Cast from lists/tuples
+    def from_list(self, param):
+        val = ((Param)*len(param))(*param)
+        return val
+
+    from_tuple = from_list
+
+    # Cast from a numpy array
+    def from_ndarray(self, param):
+        return param.ctypes.data_as(ctypes.POINTER(Param))
+
+ParamArray = ParamArrayType()
+
+try:
+    from fitnessFunction import f
+    callback_t = CFUNCTYPE(c_double, POINTER(c_double), c_int)
+    fitFunc = callback_t(f)
+
+    # Wrapper module must be called CSMOn_wrapper.so and must be present on current folder.
+    _search = ctypes.CDLL("./CSMOn_wrapper.so").search
+    def search(method, inParam, outParam):
+        n = -1
+        for it in inParam:
+            if(it.name == "n"):
+                n = it.i
+                break
+        if(n == -1):
+            print "Dimension not provided!"
+            return NULL
+        # Prepare the input parameters.
+        pos = (c_double * n)()
+        _outParam = (Param * len(outParam))(*outParam)
+        _search.argtypes = (c_char_p, ParamArray, Param*len(_outParam), c_double * n, callback_t)
+
+        # Call the C++ wrapper function.
+        _search(method, inParam, _outParam, pos, fitFunc)
+
+        # Read the output parameters.
+        for i in range(_outParam._length_):
+            outParam[i] = _outParam[i]
+
+        # Return the optimized results.
+        return list(pos)
+        
+except NameError:
+    print "Please define the function below:"
+    print "   def f(x, n)"
+    print "In a file called fitnessFunction.py, then reload this module."
diff --git a/python/CSMOn_wrapper.cpp b/python/CSMOn_wrapper.cpp
new file mode 100644
index 0000000..3ed826e
--- /dev/null
+++ b/python/CSMOn_wrapper.cpp
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * Additionally, if used for any scientific purpose, the following reference
+ * must be cited:
+ * 
+ * Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.
+ * 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic
+ * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,
+ * pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+/**
+ * @file
+ * 
+ * This file contains the wrapper code for Python calls.
+ * 
+ * @date 02/Jul/2017
+ * @author Peter Frank Perroni (pfperroni@gmail.com)
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <iostream>
+#include "PSO.hpp"
+#include "CSMOn.hpp"
+
+/**
+ * @brief Contains a parameter received from / sent to the Python caller.
+ */
+typedef struct _Param {
+	char *name;
+	char c;
+	int i;
+	long l;
+	float f;
+	double d;
+} Param;
+
+/**
+ * @brief The wrapper function for Python calls.
+ * 
+ * Call this method from Python using ctypes interface.
+ *
+ * @param method A string speficying the search method to be used.
+ * @param inParam The parameters required to call the search method specified.
+ * @param outParam The parameters returned by the search method called. This will be returned back to the Python caller.
+ * @param outPos The final result containing the optimized position. This will be returned back to the Python caller.
+ * @param fitnessFunction The callback Python function containing the code for the fitness function evaluation.
+ */
+extern "C" void search(char* method, Param *inParam, Param *outParam, double *outPos, callback_t fitnessFunction){
+
+	// Replicate (and adapt) this block of code for each different search method you want to develop.
+	// Begin template.
+	if(strcmp(method, "pso") == 0){
+
+		double w, c1, c2, s1, s2, R;
+		int i, n, p, M;
+
+		// Receive from Python caller any parameter you want.
+		for(i=0; i < 9; i++){
+			if(strcmp(inParam[i].name, "w") == 0) w = inParam[i].d;
+			else if(strcmp(inParam[i].name, "c1") == 0) c1 = inParam[i].d;
+			else if(strcmp(inParam[i].name, "c2") == 0) c2 = inParam[i].d;
+			else if(strcmp(inParam[i].name, "n") == 0) n = inParam[i].i;
+			else if(strcmp(inParam[i].name, "p") == 0) p = inParam[i].i;
+			else if(strcmp(inParam[i].name, "s1") == 0) s1 = inParam[i].d;
+			else if(strcmp(inParam[i].name, "s2") == 0) s2 = inParam[i].d;
+			else if(strcmp(inParam[i].name, "M") == 0) M = inParam[i].i;
+			else if(strcmp(inParam[i].name, "R") == 0) R = inParam[i].d;
+		}
+		printf("[CSMOn] Called search method %s with parameters: s1=%f, s2=%f, w=%f, c1=%f, c2=%f, n=%i, p=%i, M=%i, R=%f\n", method, s1, s2, w, c1, c2, n, p, M, R);
+
+		// Search method instantiation.
+		PSO *pso = new PSO(fitnessFunction, s1, s2, p, n, w, c1, c2);
+
+		// CSMOn instantiation and execution.
+		CSMOn *csmon = new CSMOn(pso, M, R, 0);
+		csmon->run();
+		
+		// Read the final results.
+		double *bestPos = new double[n];
+		csmon->getBestPos(bestPos);
+		for(i=0; i < n; i++){ // Send the final result back to Python caller.
+			outPos[i] = bestPos[i];
+		}
+
+		// Send any parameter you want back to Python caller.
+		int evals = csmon->getNEvals();
+		double fit = csmon->getFitness();
+		for(i=0; i < 2; i++){
+			if(strcmp(outParam[i].name, "nEvals") == 0) outParam[i].i = evals;
+			else if(strcmp(outParam[i].name, "fit") == 0) outParam[i].d = fit;
+		}
+
+		// Remind to clear any object that is not owned by Python caller.
+		delete bestPos;
+		delete pso;
+		delete csmon;
+	}
+	// End template.
+	else printf("Search method %s not supported yet.", method);
+
+}
diff --git a/python/Makefile b/python/Makefile
new file mode 100644
index 0000000..e3a36bb
--- /dev/null
+++ b/python/Makefile
@@ -0,0 +1,16 @@
+FONTES=../cpp/PSO.cpp ../cpp/CSMOn.cpp CSMOn_wrapper.cpp
+OBJECTS=$(FONTES:.cpp=.o)
+FLAGS=-Wall -pedantic-errors -fPIC
+
+.PHONY: all clean
+
+all: CSMOn_wrapper
+
+CSMOn_wrapper: $(OBJECTS)
+	g++ -o $@.so $^ $(FLAGS) -shared
+
+%.o: %.cpp
+	g++ -I../cpp $< -c -o $@ $(FLAGS)
+
+clean:
+	rm $(OBJECTS) CSMOn.pyc fitnessFunction.pyc
diff --git a/python/fitnessFunction.py b/python/fitnessFunction.py
new file mode 100644
index 0000000..dc2f14f
--- /dev/null
+++ b/python/fitnessFunction.py
@@ -0,0 +1,45 @@
+# Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# Additionally, if used for any scientific purpose, the following reference
+# must be cited:
+# 
+# Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.
+# 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic
+# Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,
+# pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+# fitnessFunction.cpp
+#
+# Created on: 02/Jul/2017
+# Author: Peter Frank Perroni (pfperroni@gmail.com)
+#
+# This module defines the fitness function that will be called from CSMOn C++ API.
+
+import math
+
+# Fitness Function.
+def f(x, n):
+    # Put your fitness function here.
+    PI = 3.141592653589793238462643383279
+    s = 0
+    for i in range(0, n):
+        s += x[i]*x[i] - 10 * math.cos(2 * PI * x[i])
+    return 10 * n + s
diff --git a/python/pso_example.py b/python/pso_example.py
new file mode 100644
index 0000000..c613c4e
--- /dev/null
+++ b/python/pso_example.py
@@ -0,0 +1,55 @@
+# Copyright (c) 2017, Peter Frank Perroni (pfperroni@gmail.com)
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# Additionally, if used for any scientific purpose, the following reference
+# must be cited:
+# 
+# Peter Frank Perroni, Daniel Weingaertner, and Myriam Regattieri Delgado.
+# 2017. Estimating Stop Conditions of Swarm Based Stochastic Metaheuristic
+# Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,
+# pg 43-50. DOI: http://dx.doi.org/10.1145/3071178.3071326
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+# pso_example.cpp
+#
+# Created on: 02/Jul/2017
+# Author: Peter Frank Perroni (pfperroni@gmail.com)
+#
+# This file contains an example of how to call the CSMOn C++ API.
+
+from CSMOn import *
+
+# Prepare the Input parameters.
+bestResult=[Param("nEvals", i=0), Param("fit", d=0)]
+s1=Param("s1", d=-5.12)
+s2=Param("s2", d=5.12)
+w=Param("w", d=-0.5)
+c1=Param("c1", d=0.2)
+c2=Param("c2", d=0.2)
+n=Param("n", i=100)
+p=Param("p", i=30)
+M=Param("M", i=50000)
+R=Param("R", d=-0.08)
+
+# Call CSMOn running a PSO.
+res=search("pso", [s1, s2, w, c1, c2, n, p, M, R], bestResult)
+
+#Print the results.
+print "\nOptimized result: ",res
+print "\nnEvals:", bestResult[0].i,", Fitness:",bestResult[1].d
-- 
GitLab