diff --git a/cpp/CSMOn.cpp b/cpp/CSMOn.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9b188fb984017e1537ebb80f4ce001b644ba88be --- /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 0000000000000000000000000000000000000000..d2ef6a79a85658d28c503ae90cebaa3eab238420 --- /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 0000000000000000000000000000000000000000..efd74486b702dc6d5ccbed90d553341bd33f632b --- /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 0000000000000000000000000000000000000000..8c878d18932f67570de6f5fc3e945a46c379f5e4 --- /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 0000000000000000000000000000000000000000..f99e4cfb3d565086251c39bd14537b86ec8edadf --- /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 Binary files /dev/null and b/doc/CSMOn.pdf differ diff --git a/doc/html/CSMOn_8cpp_source.html b/doc/html/CSMOn_8cpp_source.html new file mode 100644 index 0000000000000000000000000000000000000000..968d517349acad38fefc4f29ef91eb1bc988d9fa --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <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> <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <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> <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> <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> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <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> <span class="comment"> * </span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <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> <span class="comment"> * must be cited:</span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * </span></div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <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> <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> <span class="comment"> * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,</span></div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <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> <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> <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> <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> <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> <span class="comment"> * THE SOFTWARE.</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "CSMOn.hpp"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div> +<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classCSMOn.html#a9b25325acfda9b579b3a272ed474480e"> 43</a></span> <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>  this->search = search;</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  this->M = M;</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  this->minEstimatedFit = minEstimatedFit;</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">if</span>(R < 0){</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  autoRelaxation = <span class="keyword">true</span>;</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  this->R = abs(R);</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">else</span>{</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  autoRelaxation = <span class="keyword">false</span>;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  this->R = R;</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  search-><a class="code" href="classISearch.html#a8eabe4ae3ed69ede2646a536f558f2fe">startup</a>();</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  s = -1;</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> CSMOn::~CSMOn() {}</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> ISearch::~ISearch() {}</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div> +<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22"> 68</a></span> <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>  <span class="keywordtype">int</span> pT = -1, pS = -1;</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordtype">double</span> r = (autoRelaxation ? 0.99 : R);</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  getBest(1);</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">do</span>{</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  r = (autoRelaxation ? max(r*r, R) : r);</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span>(pS == -1)</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  pT = adjustExp(r);</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">if</span>(pT > 0)</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  pS = adjustLog(r, pT);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }<span class="keywordflow">while</span>(<a class="code" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">getNEvals</a>() < M && (r > R || pS == -1));</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> }</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <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>  <span class="keywordtype">int</span> sPrev = s;</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  getBest(2);</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">if</span>(s-sPrev < 2) <span class="keywordflow">return</span> -1;</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">int</span> pB = -1;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">double</span> alpha1, alpha2;</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">while</span>(<a class="code" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">getNEvals</a>() < M){</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span>(decayE() < r && decayL() < r){</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span>(pB == -1){</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  pB = s-2;</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  alpha2 = alphaE(pB, s);</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">else</span>{</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  alpha1 = alpha2;</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  alpha2 = alphaE(pB, s);</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span>(alpha2 < alpha1) <span class="keywordflow">return</span> s;</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">else</span> pB = -1;</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  getBest(1);</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">return</span> -1;</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> }</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <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>  <span class="keywordtype">int</span> sPrev = s;</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  getBest(3);</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">if</span>(s-sPrev < 3) <span class="keywordflow">return</span> -1;</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordtype">double</span> alpha1 = alphaP(pT, s-1);</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">double</span> alpha2 = alphaP(pT, s);</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">while</span>(alpha2 >= alpha1 && <a class="code" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">getNEvals</a>() < M){</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">if</span>(decayE() >= r || decayL() >= r) <span class="keywordflow">return</span> -1;</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  getBest(1);</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  alpha1 = alpha2;</div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  alpha2 = alphaP(pT, s);</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> s;</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <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>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i < nBest && search-><a class="code" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">getNEvals</a>() < M; i++){</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  search-><a class="code" href="classISearch.html#ae3cc643bf0fbe9d9bac1d43642bbb129">next</a>(M);</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  gb.push_back(<a class="code" href="struct__point.html">t_point</a>(search-><a class="code" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">getNEvals</a>(), search-><a class="code" href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">getFitness</a>()));</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  s++;</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> }</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keywordtype">double</span> CSMOn::decayE() {</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <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> }</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keywordtype">double</span> CSMOn::decayL() {</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <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> }</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <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>  <span class="keywordtype">int</span> i, n = p2 - p1 + 1;</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <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>  <span class="keywordflow">for</span>(i=p1; i <= p2; i++){</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  xSum += gb[i].x;</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  yAvg += gb[i].y;</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  ySumLn += log(gb[i].y);</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  xAvg = xSum / n;</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  yAvg /= n;</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  yAvgLn = ySumLn / n;</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">for</span>(i=p1; i <= p2; i++){</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  aux = (gb[i].x - xAvg);</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  S1 += aux * (gb[i].y - yAvgLn);</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  S2 += aux * aux;</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">return</span> (ySumLn - (S1 / S2) * xSum) / n;</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> }</div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <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>  <span class="keywordtype">int</span> i, n = p2 - p1 + 1;</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <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>  <span class="keywordflow">for</span>(i=p1; i <= p2; i++){</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  xSumLog += log10(gb[i].x);</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  ySumLog += log10(gb[i].y);</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  xAvgLog = xSumLog / n;</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  yAvgLog = ySumLog / n;</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">for</span>(i=p1; i <= p2; i++){</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  aux = (log10(gb[i].x) - xAvgLog);</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  S1 += aux * (log10(gb[i].y) - yAvgLog);</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  S2 += aux * aux;</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  }</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> (ySumLog - (S1 / S2) * xSumLog) / n;</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> }</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div> +<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5"> 178</a></span> <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>  <span class="keywordflow">return</span> search-><a class="code" href="classISearch.html#a3504ed6684ca6c82aa79c40b965d5237">getFitness</a>();</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> }</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div> +<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593"> 188</a></span> <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>  <span class="keywordflow">return</span> search-><a class="code" href="classISearch.html#a56f6b069cc3dd7f8e3f2ff38bb681639">getNEvals</a>();</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> }</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div> +<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6"> 198</a></span> <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>  <span class="keywordflow">return</span> search-><a class="code" href="classISearch.html#a9cee257ee19c02341da60440c5cddbd8">getBestPos</a>(x);</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> }</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  <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 0000000000000000000000000000000000000000..a93e89b9f94c516158729b156ab84b1f4a363625 --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <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> <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <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> <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> <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> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <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> <span class="comment"> * </span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <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> <span class="comment"> * must be cited:</span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * </span></div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <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> <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> <span class="comment"> * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,</span></div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <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> <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> <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> <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> <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> <span class="comment"> * THE SOFTWARE.</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#ifndef CSMON_HPP_</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#define CSMON_HPP_</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include <vector></span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include <cmath></span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "ISearch.hpp"</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">using namespace </span>std;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div> +<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct__point.html"> 60</a></span> <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>  <span class="keywordtype">int</span> x;</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordtype">double</span> y;</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <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>  x = _x, y = _y;</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }<a class="code" href="struct__point.html">t_point</a>;</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div> +<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classCSMOn.html"> 74</a></span> <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>  <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>  <span class="keywordtype">bool</span> autoRelaxation;</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordtype">int</span> M, s;</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordtype">double</span> R, minEstimatedFit;</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  vector<t_point> gb;</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordtype">double</span> decayE();</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordtype">double</span> decayL();</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <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>  <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> </div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">public</span>:</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <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>  <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>  <span class="keywordtype">void</span> run();</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <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>  <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>  <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>  <span class="keywordtype">int</span> getNEvals();</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordtype">double</span> getFitness();</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <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> </div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> };</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <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'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  <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 0000000000000000000000000000000000000000..1c36e656f2ae97b51377da1f8d3995e30f856ea2 --- /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 +  <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 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <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> <span class="comment"># of this software and associated documentation files (the "Software"), to deal</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <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> <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> <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> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <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> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <span class="comment"># must be cited:</span></div> +<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"># </span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <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> <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> <span class="comment"># Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,</span></div> +<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"># THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <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> <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> <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> <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> <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> <span class="comment"># THE SOFTWARE.</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"># CSMOn.cpp</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">#</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"># Created on: 02/Jul/2017</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"># Author: Peter Frank Perroni (pfperroni@gmail.com)</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">#</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <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> </div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">import</span> ctypes</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">from</span> ctypes <span class="keyword">import</span> *</div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <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> <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>  _fields_ = [(<span class="stringliteral">'name'</span>, ctypes.c_char_p),</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  (<span class="stringliteral">'c'</span>, ctypes.c_char),</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  (<span class="stringliteral">'i'</span>, ctypes.c_int),</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  (<span class="stringliteral">'l'</span>, ctypes.c_long),</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  (<span class="stringliteral">'f'</span>, ctypes.c_float),</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  (<span class="stringliteral">'d'</span>, ctypes.c_double)]</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <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> <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>  <span class="keyword">def </span>from_param(self, param):</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  typename = type(param).__name__</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">if</span> hasattr(self, <span class="stringliteral">'from_'</span> + typename):</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">return</span> getattr(self, <span class="stringliteral">'from_'</span> + typename)(param)</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">elif</span> isinstance(param, ctypes.Array):</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">return</span> param</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">else</span>:</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">raise</span> TypeError(<span class="stringliteral">"Can't convert %s"</span> % typename)</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment"># Cast from array.array objects</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">def </span>from_array(self, param):</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">if</span> param.typecode != <span class="stringliteral">'d'</span>:</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">raise</span> TypeError(<span class="stringliteral">'must be an array of param'</span>)</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  ptr, _ = param.buffer_info()</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">return</span> ctypes.cast(ptr, ctypes.POINTER(Param))</div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment"># Cast from lists/tuples</span></div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">def </span>from_list(self, param):</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  val = ((Param)*len(param))(*param)</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">return</span> val</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  from_tuple = from_list</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment"># Cast from a numpy array</span></div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">def </span>from_ndarray(self, param):</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <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> </div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> ParamArray = <a class="code" href="classCSMOn_1_1ParamArrayType.html">ParamArrayType</a>()</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">try</span>:</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <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>  callback_t = CFUNCTYPE(c_double, POINTER(c_double), c_int)</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  fitFunc = callback_t(f)</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <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>  _search = ctypes.CDLL(<span class="stringliteral">"./CSMOn_wrapper.so"</span>).search</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">def </span>search(method, inParam, outParam):</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  n = -1</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <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>  if(it.name == <span class="stringliteral">"n"</span>):</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  n = it.i</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">break</span></div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  if(n == -1):</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">print</span> <span class="stringliteral">"Dimension not provided!"</span></div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">return</span> NULL</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment"># Prepare the input parameters.</span></div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  pos = (c_double * n)()</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  _outParam = (Param * len(outParam))(*outParam)</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  _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> </div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="comment"># Call the C++ wrapper function.</span></div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  _search(method, inParam, _outParam, pos, fitFunc)</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment"># Read the output parameters.</span></div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <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>  outParam[i] = _outParam[i]</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment"># Return the optimized results.</span></div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> list(pos)</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">except</span> NameError:</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">print</span> <span class="stringliteral">"Please define the function below:"</span></div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">print</span> <span class="stringliteral">" def f(x, n)"</span></div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">print</span> <span class="stringliteral">"In a file called fitnessFunction.py, then reload this module."</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  <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 0000000000000000000000000000000000000000..621d453f1e1a0401f1d4c9d732ea9ffc9e4b6915 --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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> | +<a href="#typedef-members">Typedefs</a> | +<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 <stdio.h></code><br /> +<code>#include <string.h></code><br /> +<code>#include <iostream></code><br /> +<code>#include "PSO.hpp"</code><br /> +<code>#include "CSMOn.hpp"</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  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__Param.html">_Param</a></td></tr> +<tr class="memdesc:"><td class="mdescLeft"> </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"> </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> </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"> </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"> </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 </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"> </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"> </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 * </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> * </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> * </td> + <td class="paramname"><em>outParam</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double * </td> + <td class="paramname"><em>outPos</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">callback_t </td> + <td class="paramname"><em>fitnessFunction</em> </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  <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 0000000000000000000000000000000000000000..77ecb7e65748ff30b6c40187cbf6784b86701f9f --- /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 0000000000000000000000000000000000000000..99e7c250af711b9fae87ae302b39f6632e5d5dc9 --- /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 Binary files /dev/null and b/doc/html/CSMOn__wrapper_8cpp__incl.png differ diff --git a/doc/html/CSMOn__wrapper_8cpp_source.html b/doc/html/CSMOn__wrapper_8cpp_source.html new file mode 100644 index 0000000000000000000000000000000000000000..8311f21abda15f6f719ff024f03ce93712cb6720 --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <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> <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <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> <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> <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> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <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> <span class="comment"> * </span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <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> <span class="comment"> * must be cited:</span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * </span></div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <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> <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> <span class="comment"> * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,</span></div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <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> <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> <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> <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> <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> <span class="comment"> * THE SOFTWARE.</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <stdio.h></span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <string.h></span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <iostream></span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "PSO.hpp"</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "CSMOn.hpp"</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div> +<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct__Param.html"> 49</a></span> <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>  <span class="keywordtype">char</span> *name;</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordtype">char</span> c;</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordtype">int</span> i;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordtype">long</span> l;</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordtype">float</span> f;</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">double</span> d;</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> } <a class="code" href="CSMOn__wrapper_8cpp.html#a376fcabfd8429288efa3398dc2f3e8e1">Param</a>;</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div> +<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="CSMOn__wrapper_8cpp.html#a918c532a1803542131c64811335fe6d7"> 69</a></span> <span class="keyword">extern</span> <span class="stringliteral">"C"</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> </div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <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>  <span class="comment">// Begin template.</span></div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">if</span>(strcmp(method, <span class="stringliteral">"pso"</span>) == 0){</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordtype">double</span> w, c1, c2, s1, s2, R;</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordtype">int</span> i, n, p, M;</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <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>  <span class="keywordflow">for</span>(i=0; i < 9; i++){</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">"w"</span>) == 0) w = inParam[i].d;</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">"c1"</span>) == 0) c1 = inParam[i].d;</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">"c2"</span>) == 0) c2 = inParam[i].d;</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">"n"</span>) == 0) n = inParam[i].i;</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">"p"</span>) == 0) p = inParam[i].i;</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">"s1"</span>) == 0) s1 = inParam[i].d;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">"s2"</span>) == 0) s2 = inParam[i].d;</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">"M"</span>) == 0) M = inParam[i].i;</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(inParam[i].name, <span class="stringliteral">"R"</span>) == 0) R = inParam[i].d;</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  printf(<span class="stringliteral">"[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"</span>, method, s1, s2, w, c1, c2, n, p, M, R);</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="comment">// Search method instantiation.</span></div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <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> </div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// CSMOn instantiation and execution.</span></div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <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>  csmon-><a class="code" href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22">run</a>();</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// Read the final results.</span></div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <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>  csmon-><a class="code" href="classCSMOn.html#ac5665384c5c4af241bbead4f98fdb3c6">getBestPos</a>(bestPos);</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">for</span>(i=0; i < 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>  outPos[i] = bestPos[i];</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <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>  <span class="keywordtype">int</span> evals = csmon-><a class="code" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">getNEvals</a>();</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordtype">double</span> fit = csmon-><a class="code" href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5">getFitness</a>();</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">for</span>(i=0; i < 2; i++){</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">if</span>(strcmp(outParam[i].name, <span class="stringliteral">"nEvals"</span>) == 0) outParam[i].i = evals;</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(strcmp(outParam[i].name, <span class="stringliteral">"fit"</span>) == 0) outParam[i].d = fit;</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <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>  <span class="keyword">delete</span> bestPos;</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">delete</span> pso;</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">delete</span> csmon;</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">// End template.</span></div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">else</span> printf(<span class="stringliteral">"Search method %s not supported yet."</span>, method);</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> }</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'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  <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 0000000000000000000000000000000000000000..6bf44288c2b9cc6367a0e7b31e11b65a70fbd49c --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <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> <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <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> <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> <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> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <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> <span class="comment"> * </span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <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> <span class="comment"> * must be cited:</span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * </span></div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <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> <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> <span class="comment"> * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,</span></div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <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> <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> <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> <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> <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> <span class="comment"> * THE SOFTWARE.</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef ISEARCH_HPP_</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define ISEARCH_HPP_</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div> +<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classISearch.html"> 40</a></span> <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> <span class="keyword">public</span>:</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classISearch.html">ISearch</a>(){}</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <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>  <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>  <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>  <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>  <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>  <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> };</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <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  <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 0000000000000000000000000000000000000000..54c994ac94a9a481a7c97e1923f21783be877801 --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <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> <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <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> <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> <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> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <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> <span class="comment"> * </span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <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> <span class="comment"> * must be cited:</span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * </span></div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <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> <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> <span class="comment"> * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,</span></div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <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> <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> <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> <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> <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> <span class="comment"> * THE SOFTWARE.</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "PSO.hpp"</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div> +<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classPSO.html#a810105b87e4f6fc026edd6b4ef484953"> 45</a></span> <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>  this->fitnessFunction = fitnessFunction;</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  this->s1 = s1;</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  this->s2 = s2;</div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  this->p = p;</div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  this->n = n;</div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  this->c1 = c1;</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  this->c2 = c2;</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">if</span>(w < 0){</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  decreasingW = <span class="keyword">true</span>;</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  this->w = abs(w);</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">else</span>{</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  decreasingW = <span class="keyword">false</span>;</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  this->w = w;</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  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>  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>  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>  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>  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>  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>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i < p; i++){</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  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>  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>  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>  }</div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  seed = 1;</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  nEvals = 0;</div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  Gb_Fit = DBL_MAX;</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  gb = -1;</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> PSO::~PSO() {</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i < p; i++){</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">delete</span> pb[i];</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">delete</span> x[i];</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">delete</span> v[i];</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">delete</span> Gb;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">delete</span> pb;</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">delete</span> pb_Fit;</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">delete</span> x;</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">delete</span> fit;</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">delete</span> v;</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div> +<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classPSO.html#a4866695395fb314ea732bccde6691ef3"> 96</a></span> <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>  seed = <a class="code" href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">getRandomSeed</a>();</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  nEvals = 0;</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  Gb_Fit = DBL_MAX;</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  gb = -1;</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j, i=0; i < p; i++){</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">for</span>(j=0; j < n; j++) v[i][j] = RAND_DOUBLE(seed, s1, s2)/10;</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">for</span>(j=0; j < n; j++) x[i][j] = RAND_DOUBLE(seed, s1, s2);</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  COPY_ARR(x[i], pb[i], n);</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  pb_Fit[i] = fit[i] = fitnessFunction(x[i], n);</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">if</span>(pb_Fit[i] < Gb_Fit){</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  COPY_ARR(pb[i], Gb, n);</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  Gb_Fit = pb_Fit[i];</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  gb = i;</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div> +<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classPSO.html#a465d956bdb86e93bc06b6fb016feb70c"> 120</a></span> <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>  <span class="keywordtype">bool</span> found = <span class="keyword">false</span>;</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">int</span> i, j;</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordtype">double</span> currW = w - (w / M) * nEvals;</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">while</span>(!found && nEvals < M){</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">for</span>(i=0; i < p; i++){</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">for</span>(j=0; j < n; j++){</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  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>  + c2 * RAND_DOUBLE(seed, 0, 1) * (Gb[j] - x[i][j]);</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  x[i][j] += v[i][j];</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span>(x[i][j] < s1)</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  x[i][j] = s1;</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(x[i][j] > s2)</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  x[i][j] = s2;</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  fit[i] = fitnessFunction(x[i], n);</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  nEvals++;</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">for</span>(i=0; i < p; i++){</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span>(fit[i] < pb_Fit[i]){</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  COPY_ARR(x[i], pb[i], n);</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  pb_Fit[i] = fit[i];</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span>(pb_Fit[i] < Gb_Fit){</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  found = <span class="keyword">true</span>;</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  COPY_ARR(pb[i], Gb, n);</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  Gb_Fit = pb_Fit[i];</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  gb = i;</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">if</span>(decreasingW) currW -= w / M;</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> }</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div> +<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classPSO.html#a649d2a7b444ac91bfb05d7e9f3c2e20e"> 160</a></span> <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>  COPY_ARR(pb[gb], _x, n);</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> gb;</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> }</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div> +<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba"> 170</a></span> <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>  <span class="keywordflow">return</span> nEvals;</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div> +<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7"> 180</a></span> <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>  <span class="keywordflow">return</span> Gb_Fit;</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> }</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div> +<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813"> 191</a></span> <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>  <span class="keyword">struct </span>timeval tv;</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  gettimeofday(&tv,NULL);</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> tv.tv_usec;</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</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="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  <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 0000000000000000000000000000000000000000..79c7cb232115ebc75006e7c0be169823ef60107e --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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> <span class="comment">/*</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <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> <span class="comment"> * of this software and associated documentation files (the "Software"), to deal</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <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> <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> <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> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <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> <span class="comment"> * </span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <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> <span class="comment"> * must be cited:</span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * </span></div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <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> <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> <span class="comment"> * Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,</span></div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <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> <span class="comment"> *</span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <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> <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> <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> <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> <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> <span class="comment"> * THE SOFTWARE.</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef PSO_HPP_</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define PSO_HPP_</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <sys/time.h></span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <float.h></span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <stdlib.h></span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "ISearch.hpp"</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#define PI (3.141592653589793238462643383279)</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#define COPY_ARR(orig, dest, sz) for(int _i_=0; _i_ < sz; dest[_i_] = orig[_i_], _i_++);</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#define RAND_DOUBLE(seed, a, b) ((a==b)?a:(a+(((double)rand_r(&seed))/RAND_MAX)*(b-a)))</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <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> </div> +<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classPSO.html"> 53</a></span> <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>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> seed;</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">bool</span> decreasingW;</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordtype">int</span> p, n, nEvals, gb;</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <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> </div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  callback_t fitnessFunction;</div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">public</span>:</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <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>  ~<a class="code" href="classPSO.html">PSO</a>();</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <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>  <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>  <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>  <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>  <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>  <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> };</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <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  <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 0000000000000000000000000000000000000000..d6bdcbd323f30e98b537cf9844ce770ae834a68c --- /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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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;"> </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;"> </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;"> </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;"> </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;"> </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  <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 Binary files /dev/null and b/doc/html/bc_s.png differ diff --git a/doc/html/bdwn.png b/doc/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 Binary files /dev/null and b/doc/html/bdwn.png differ diff --git a/doc/html/classCSMOn-members.html b/doc/html/classCSMOn-members.html new file mode 100644 index 0000000000000000000000000000000000000000..7954a514134e945b5a38bd9f7ce96aa4846d2873 --- /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 +  <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 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 List</span></a></li> + <li><a href="classes.html"><span>Class Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Class 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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  <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 0000000000000000000000000000000000000000..0def6eece284e830f089f85e8cd0197f3840ef91 --- /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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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 <<a class="el" href="CSMOn_8hpp_source.html">CSMOn.hpp</a>></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"> </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"> </td><td class="mdescRight">Class for <a class="el" href="classCSMOn.html" title="Convergence Stabilization Modeling operating in Online Mode ( formely called of C'MOn! )...">CSMOn</a>. <a href="#a9b25325acfda9b579b3a272ed474480e">More...</a><br /></td></tr> +<tr class="separator:a9b25325acfda9b579b3a272ed474480e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a287ef04ef03f758a2a121057e9798c22"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a287ef04ef03f758a2a121057e9798c22"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSMOn.html#a287ef04ef03f758a2a121057e9798c22">run</a> ()</td></tr> +<tr class="memdesc:a287ef04ef03f758a2a121057e9798c22"><td class="mdescLeft"> </td><td class="mdescRight">Call this method to execute the search. <br /></td></tr> +<tr class="separator:a287ef04ef03f758a2a121057e9798c22"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a758de932efcf1be4537984541123774b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a758de932efcf1be4537984541123774b"></a> +void </td><td class="memItemRight" valign="bottom"><b>getBest</b> (int nBest)</td></tr> +<tr class="separator:a758de932efcf1be4537984541123774b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a231fc5e5b6a478e8315f1fc867771ff2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a231fc5e5b6a478e8315f1fc867771ff2"></a> +int </td><td class="memItemRight" valign="bottom"><b>adjustExp</b> (double r)</td></tr> +<tr class="separator:a231fc5e5b6a478e8315f1fc867771ff2"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2c2ce1d69d99154585fe49908cd40fa7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c2ce1d69d99154585fe49908cd40fa7"></a> +int </td><td class="memItemRight" valign="bottom"><b>adjustLog</b> (double r, int pT)</td></tr> +<tr class="separator:a2c2ce1d69d99154585fe49908cd40fa7"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af423cda7d5f129d768ec5d4ef6f80593"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSMOn.html#af423cda7d5f129d768ec5d4ef6f80593">getNEvals</a> ()</td></tr> +<tr class="memdesc:af423cda7d5f129d768ec5d4ef6f80593"><td class="mdescLeft"> </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"> </td></tr> +<tr class="memitem:a4b1a2a4e99746adec24b3cdf683f31c5"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classCSMOn.html#a4b1a2a4e99746adec24b3cdf683f31c5">getFitness</a> ()</td></tr> +<tr class="memdesc:a4b1a2a4e99746adec24b3cdf683f31c5"><td class="mdescLeft"> </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"> </td></tr> +<tr class="memitem:ac5665384c5c4af241bbead4f98fdb3c6"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </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 & 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> * </td> + <td class="paramname"><em>search</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int </td> + <td class="paramname"><em>M</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>R</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>minEstimatedFit</em> </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'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 * </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  <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 0000000000000000000000000000000000000000..93bae7bfe0a15c0888ccfc56abaca8da2f7f160b --- /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 +  <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 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 List</span></a></li> + <li><a href="classes.html"><span>Class Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Class 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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  <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 0000000000000000000000000000000000000000..cba5e8da9401a3bcf2cdfcadf1358e6114f77eae --- /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 +  <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 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 List</span></a></li> + <li><a href="classes.html"><span>Class Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Class 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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  <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 0000000000000000000000000000000000000000..7a4df8b2c4f536838a690babf328fa1c40918000 --- /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 +  <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 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 List</span></a></li> + <li><a href="classes.html"><span>Class Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Class 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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  <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 0000000000000000000000000000000000000000..8354214a4864e055c80bda88cde1c0f744b13773 --- /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 +  <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 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 List</span></a></li> + <li><a href="classes.html"><span>Class Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Class 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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> | +<a href="#pub-static-attribs">Static Public Attributes</a> | +<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 </td><td class="memItemRight" valign="bottom"><b>from_param</b></td></tr> +<tr class="separator:a45129224abd352dd05594d5508f28387"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a339f251b86dd4c8063011958a5402074"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a339f251b86dd4c8063011958a5402074"></a> +def </td><td class="memItemRight" valign="bottom"><b>from_array</b></td></tr> +<tr class="separator:a339f251b86dd4c8063011958a5402074"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aaf96e3b6a7aa2946f623f5190b2d1263"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf96e3b6a7aa2946f623f5190b2d1263"></a> +def </td><td class="memItemRight" valign="bottom"><b>from_list</b></td></tr> +<tr class="separator:aaf96e3b6a7aa2946f623f5190b2d1263"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4d65964e49ee613dbeabf80e27f0a510"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4d65964e49ee613dbeabf80e27f0a510"></a> +def </td><td class="memItemRight" valign="bottom"><b>from_ndarray</b></td></tr> +<tr class="separator:a4d65964e49ee613dbeabf80e27f0a510"><td class="memSeparator" colspan="2"> </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> + </td><td class="memItemRight" valign="bottom"><b>from_tuple</b> = from_list</td></tr> +<tr class="separator:af23274cf5a626b4e5873a617993e0390"><td class="memSeparator" colspan="2"> </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  <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 0000000000000000000000000000000000000000..25d85854c5f3d8b4fd91e93e4864c7dd3dc87490 --- /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 0000000000000000000000000000000000000000..0b61af174599ec09129bb8d39eca14c5028a76df --- /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 Binary files /dev/null and b/doc/html/classCSMOn_1_1Param__coll__graph.png differ 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 0000000000000000000000000000000000000000..25d85854c5f3d8b4fd91e93e4864c7dd3dc87490 --- /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 0000000000000000000000000000000000000000..0b61af174599ec09129bb8d39eca14c5028a76df --- /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 Binary files /dev/null and b/doc/html/classCSMOn_1_1Param__inherit__graph.png differ diff --git a/doc/html/classCSMOn__coll__graph.map b/doc/html/classCSMOn__coll__graph.map new file mode 100644 index 0000000000000000000000000000000000000000..d866e6fc6ecc9fc18ba3d34e7ee16d57e4be87f2 --- /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 0000000000000000000000000000000000000000..b55b3068841089e3363596de251c025be0cfbc3b --- /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 Binary files /dev/null and b/doc/html/classCSMOn__coll__graph.png differ diff --git a/doc/html/classISearch-members.html b/doc/html/classISearch-members.html new file mode 100644 index 0000000000000000000000000000000000000000..03bf1430f79dbd692fe0979c391f19c99f31ad3e --- /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 +  <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 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 List</span></a></li> + <li><a href="classes.html"><span>Class Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Class 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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  <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 0000000000000000000000000000000000000000..7bdb5e6b5b17132d21e1f3df66ebf808fa465e29 --- /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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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 <<a class="el" href="ISearch_8hpp_source.html">ISearch.hpp</a>></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 </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"> </td><td class="mdescRight">Startup the search method. <br /></td></tr> +<tr class="separator:a8eabe4ae3ed69ede2646a536f558f2fe"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae3cc643bf0fbe9d9bac1d43642bbb129"><td class="memItemLeft" align="right" valign="top">virtual void </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"> </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"> </td></tr> +<tr class="memitem:a9cee257ee19c02341da60440c5cddbd8"><td class="memItemLeft" align="right" valign="top">virtual int </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"> </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"> </td></tr> +<tr class="memitem:a56f6b069cc3dd7f8e3f2ff38bb681639"><td class="memItemLeft" align="right" valign="top">virtual int </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"> </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"> </td></tr> +<tr class="memitem:a3504ed6684ca6c82aa79c40b965d5237"><td class="memItemLeft" align="right" valign="top">virtual double </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"> </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"> </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 * </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 </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  <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 0000000000000000000000000000000000000000..4908846722e55866e0e95befbec7b4e876a4ffb9 --- /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 0000000000000000000000000000000000000000..7e9dc8700e7ef87b942aee177b385164424c7b0b --- /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 Binary files /dev/null and b/doc/html/classISearch__inherit__graph.png differ diff --git a/doc/html/classPSO-members.html b/doc/html/classPSO-members.html new file mode 100644 index 0000000000000000000000000000000000000000..703612230f07ad289b96a29d50f48f3666d66f1f --- /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 +  <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 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 List</span></a></li> + <li><a href="classes.html"><span>Class Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Class 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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  <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 0000000000000000000000000000000000000000..e394c0cb7c63862867d4bc01db3f87c8c39b962c --- /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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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 <<a class="el" href="PSO_8hpp_source.html">PSO.hpp</a>></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"> </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"> </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"> </td></tr> +<tr class="memitem:a4866695395fb314ea732bccde6691ef3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4866695395fb314ea732bccde6691ef3"></a> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPSO.html#a4866695395fb314ea732bccde6691ef3">startup</a> ()</td></tr> +<tr class="memdesc:a4866695395fb314ea732bccde6691ef3"><td class="mdescLeft"> </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"> </td></tr> +<tr class="memitem:a465d956bdb86e93bc06b6fb016feb70c"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> +<tr class="memitem:a649d2a7b444ac91bfb05d7e9f3c2e20e"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr> +<tr class="memitem:aa5c58e658a718b2f75b58b51c312f2ba"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classPSO.html#aa5c58e658a718b2f75b58b51c312f2ba">getNEvals</a> ()</td></tr> +<tr class="memdesc:aa5c58e658a718b2f75b58b51c312f2ba"><td class="mdescLeft"> </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"> </td></tr> +<tr class="memitem:a9859c4126970209c8c8f534d4458dbd7"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classPSO.html#a9859c4126970209c8c8f534d4458dbd7">getFitness</a> ()</td></tr> +<tr class="memdesc:a9859c4126970209c8c8f534d4458dbd7"><td class="mdescLeft"> </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"> </td></tr> +<tr class="memitem:a0e3ed1fa7e0bb64ca9e6afcdca8d1813"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classPSO.html#a0e3ed1fa7e0bb64ca9e6afcdca8d1813">getRandomSeed</a> ()</td></tr> +<tr class="memdesc:a0e3ed1fa7e0bb64ca9e6afcdca8d1813"><td class="mdescLeft"> </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"> </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 & 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 </td> + <td class="paramname"><em>fitnessFunction</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>s1</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>s2</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int </td> + <td class="paramname"><em>p</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>w</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>c1</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double </td> + <td class="paramname"><em>c2</em> </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 * </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 </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  <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 0000000000000000000000000000000000000000..2388f639013a5c41c4654a492f8337369be0417c --- /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 0000000000000000000000000000000000000000..cd926d13a1288ed609aab1c4959a5d8d31c98149 --- /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 Binary files /dev/null and b/doc/html/classPSO__coll__graph.png differ diff --git a/doc/html/classPSO__inherit__graph.map b/doc/html/classPSO__inherit__graph.map new file mode 100644 index 0000000000000000000000000000000000000000..2388f639013a5c41c4654a492f8337369be0417c --- /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 0000000000000000000000000000000000000000..cd926d13a1288ed609aab1c4959a5d8d31c98149 --- /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 Binary files /dev/null and b/doc/html/classPSO__inherit__graph.png differ diff --git a/doc/html/classes.html b/doc/html/classes.html new file mode 100644 index 0000000000000000000000000000000000000000..84db34eb7d81731d3fc3796052cac61fb71d05d5 --- /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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> + <li class="current"><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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> | <a class="qindex" href="#letter_I">I</a> | <a class="qindex" href="#letter_P">P</a> | <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">  C  </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">  I  </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">  P  </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">  _  </div></td></tr></table> +</td><td valign="top"><a class="el" href="struct__point.html">_point</a>   </td></tr> +<tr><td></td></tr> +<tr><td valign="top"><a class="el" href="classCSMOn.html">CSMOn</a>   </td><td valign="top"><a class="el" href="classISearch.html">ISearch</a>   </td><td valign="top"><a class="el" href="classPSO.html">PSO</a>   </td><td valign="top"><a class="el" href="struct__Param.html">_Param</a>   </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> | <a class="qindex" href="#letter_I">I</a> | <a class="qindex" href="#letter_P">P</a> | <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  <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 Binary files /dev/null and b/doc/html/closed.png differ diff --git a/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79.html b/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79.html new file mode 100644 index 0000000000000000000000000000000000000000..81bdf958a2f56d2c6cd4c4a11ff7a9cb98194c38 --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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  </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"> </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  <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 0000000000000000000000000000000000000000..672d4a36464b627ca8cae45cb03ad858a8501635 --- /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 0000000000000000000000000000000000000000..99f66f3889d9970a188364cf3591e295ee95861d --- /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 Binary files /dev/null and b/doc/html/dir_7837fde3ab9c1fb2fc5be7b717af8d79_dep.png differ diff --git a/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8.html b/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8.html new file mode 100644 index 0000000000000000000000000000000000000000..3ce54b9b74ef0debcffaca2f6369c9412964f548 --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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  </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"> </td></tr> +<tr class="memitem:CSMOn_8hpp"><td class="memItemLeft" align="right" valign="top">file  </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"> </td></tr> +<tr class="memitem:ISearch_8hpp"><td class="memItemLeft" align="right" valign="top">file  </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"> </td></tr> +<tr class="memitem:PSO_8cpp"><td class="memItemLeft" align="right" valign="top">file  </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"> </td></tr> +<tr class="memitem:PSO_8hpp"><td class="memItemLeft" align="right" valign="top">file  </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"> </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  <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 0000000000000000000000000000000000000000..19d0c8564a7c02fedfed543e8f9dacb8ee63cf77 --- /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 0000000000000000000000000000000000000000..d7bea35ded2aa91636a2d070ca07e1b419ae3f3a --- /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 Binary files /dev/null and b/doc/html/dir_df511e5bd85cec96854b39d5e1c27aa8_dep.png differ diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css new file mode 100644 index 0000000000000000000000000000000000000000..0a8f9627a5eed65d3ae367280344cfb9151f73a6 --- /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 Binary files /dev/null and b/doc/html/doxygen.png differ diff --git a/doc/html/dynsections.js b/doc/html/dynsections.js new file mode 100644 index 0000000000000000000000000000000000000000..1e6bf07f9fb050fd34d69602a3c95b6b50e37895 --- /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('▼'); + $(this).show(); + } else if (l==level+1) { + i.removeClass('iconfclosed iconfopen').addClass('iconfclosed'); + a.html('►'); + $(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('►'); + 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('▼'); + // 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('►'); + 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 0000000000000000000000000000000000000000..cb5762226909411ea330d5c56141d28bce2479b1 --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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;"> </span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">▼</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">▼</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')"> </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;"> </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  <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 0000000000000000000000000000000000000000..82a36879ba722d4603b5d082e0d6cb6a8354163a --- /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 +  <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 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <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> <span class="comment"># of this software and associated documentation files (the "Software"), to deal</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <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> <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> <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> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <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> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <span class="comment"># must be cited:</span></div> +<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"># </span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <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> <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> <span class="comment"># Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,</span></div> +<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"># THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <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> <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> <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> <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> <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> <span class="comment"># THE SOFTWARE.</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"># fitnessFunction.cpp</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">#</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"># Created on: 02/Jul/2017</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"># Author: Peter Frank Perroni (pfperroni@gmail.com)</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">#</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <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> </div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">import</span> math</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"># Fitness Function.</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">def </span>f(x, n):</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="comment"># Put your fitness function here.</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  PI = 3.141592653589793238462643383279</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  s = 0</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <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>  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>  <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  <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 Binary files /dev/null and b/doc/html/ftv2blank.png differ diff --git a/doc/html/ftv2doc.png b/doc/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 Binary files /dev/null and b/doc/html/ftv2doc.png differ diff --git a/doc/html/ftv2folderclosed.png b/doc/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 Binary files /dev/null and b/doc/html/ftv2folderclosed.png differ diff --git a/doc/html/ftv2folderopen.png b/doc/html/ftv2folderopen.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c7f676a3b3ef8c2c307d319dff3c6a604eb227 Binary files /dev/null and b/doc/html/ftv2folderopen.png differ diff --git a/doc/html/ftv2lastnode.png b/doc/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 Binary files /dev/null and b/doc/html/ftv2lastnode.png differ diff --git a/doc/html/ftv2link.png b/doc/html/ftv2link.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 Binary files /dev/null and b/doc/html/ftv2link.png differ diff --git a/doc/html/ftv2mlastnode.png b/doc/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 Binary files /dev/null and b/doc/html/ftv2mlastnode.png differ diff --git a/doc/html/ftv2mnode.png b/doc/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 Binary files /dev/null and b/doc/html/ftv2mnode.png differ diff --git a/doc/html/ftv2node.png b/doc/html/ftv2node.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 Binary files /dev/null and b/doc/html/ftv2node.png differ diff --git a/doc/html/ftv2plastnode.png b/doc/html/ftv2plastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 Binary files /dev/null and b/doc/html/ftv2plastnode.png differ diff --git a/doc/html/ftv2pnode.png b/doc/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 Binary files /dev/null and b/doc/html/ftv2pnode.png differ diff --git a/doc/html/ftv2splitbar.png b/doc/html/ftv2splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e Binary files /dev/null and b/doc/html/ftv2splitbar.png differ diff --git a/doc/html/ftv2vertline.png b/doc/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 Binary files /dev/null and b/doc/html/ftv2vertline.png differ diff --git a/doc/html/functions.html b/doc/html/functions.html new file mode 100644 index 0000000000000000000000000000000000000000..40516e787ff33d64136e28b6399a3c18dfe87b40 --- /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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li class="current"><a href="functions.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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  <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 0000000000000000000000000000000000000000..8c376280c993f5ec298f0e758fde4bf14326bc25 --- /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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li class="current"><a href="functions.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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"> + <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  <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 0000000000000000000000000000000000000000..c9a911e52e1b50fc66d7166e7e59fbb628c9a6c3 --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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  <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 0000000000000000000000000000000000000000..58811295d7bdfe52317485ddd34f48bd07998746 --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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"> + <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  <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 0000000000000000000000000000000000000000..91d98d4c653d7a5cfcd840c5a946e74aef32704b --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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"> + <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  <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 0000000000000000000000000000000000000000..33ac78c2fff636052826b2d609395a6cef549c6b --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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><<span class="keyword">class</span> T> <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<int></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  <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 0000000000000000000000000000000000000000..a06ed050cbb5398b6f149c32c29006e39f00d56a --- /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 Binary files /dev/null and b/doc/html/graph_legend.png differ diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html new file mode 100644 index 0000000000000000000000000000000000000000..886d87a6b12ae010f1c1a6e7ec9205697074b489 --- /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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li class="current"><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">▼</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;"> </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  <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 0000000000000000000000000000000000000000..70afad0ac9530739505c9af2a29fbea5ba20947f --- /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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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  <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 0000000000000000000000000000000000000000..e5a597c33c58e7d1951480fb79c37841a2d66a1f --- /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 0000000000000000000000000000000000000000..f218d597ebc334b59bd5bce23217fbcc4e08a09c --- /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 Binary files /dev/null and b/doc/html/inherit_graph_0.png differ diff --git a/doc/html/inherit_graph_1.map b/doc/html/inherit_graph_1.map new file mode 100644 index 0000000000000000000000000000000000000000..37e518a12e63213b2fd9cbdb0d9202b3719e83cd --- /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 0000000000000000000000000000000000000000..e1c12857bb8686eb49f8cc04250dd027307bc053 --- /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 Binary files /dev/null and b/doc/html/inherit_graph_1.png differ diff --git a/doc/html/inherit_graph_2.map b/doc/html/inherit_graph_2.map new file mode 100644 index 0000000000000000000000000000000000000000..8482f072e5a497fffeeab8528eea9b99e31dc73e --- /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'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 0000000000000000000000000000000000000000..5a2e2df94f43311bf86b8767eaf7b4a3626eccb4 --- /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 Binary files /dev/null and b/doc/html/inherit_graph_2.png differ diff --git a/doc/html/inherit_graph_3.map b/doc/html/inherit_graph_3.map new file mode 100644 index 0000000000000000000000000000000000000000..39c2cfbc9f6cbdda3c4b2eac9ce320f95994cdad --- /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 0000000000000000000000000000000000000000..d264ef254fbdc438f981d0ed5f1de5baac1a9b50 --- /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 Binary files /dev/null and b/doc/html/inherit_graph_3.png differ diff --git a/doc/html/inherit_graph_4.map b/doc/html/inherit_graph_4.map new file mode 100644 index 0000000000000000000000000000000000000000..32e1a13ba37141903c84295f61412d802d80815e --- /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 0000000000000000000000000000000000000000..0506c15783e1cd4958a3d61e7787ae9987d1bbca --- /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 Binary files /dev/null and b/doc/html/inherit_graph_4.png differ diff --git a/doc/html/inherit_graph_5.map b/doc/html/inherit_graph_5.map new file mode 100644 index 0000000000000000000000000000000000000000..a9568bce72f807f4d5e35c03195f2f0bcd671675 --- /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 0000000000000000000000000000000000000000..a3a3565978433467ef438f8be4755627f4551edd --- /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 Binary files /dev/null and b/doc/html/inherit_graph_5.png differ diff --git a/doc/html/inherits.html b/doc/html/inherits.html new file mode 100644 index 0000000000000000000000000000000000000000..72239ebcfc1a78a13b436dab2c830166c75ac5c3 --- /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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li class="current"><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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'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  <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 0000000000000000000000000000000000000000..227e579333b1ca93a25b60bdad9ab6d1699bfd94 --- /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 Binary files /dev/null and b/doc/html/nav_f.png differ diff --git a/doc/html/nav_g.png b/doc/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 Binary files /dev/null and b/doc/html/nav_g.png differ diff --git a/doc/html/nav_h.png b/doc/html/nav_h.png new file mode 100644 index 0000000000000000000000000000000000000000..33389b101d9cd9b4c98ad286b5d9c46a6671f650 Binary files /dev/null and b/doc/html/nav_h.png differ diff --git a/doc/html/open.png b/doc/html/open.png new file mode 100644 index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b Binary files /dev/null and b/doc/html/open.png differ diff --git a/doc/html/pso__example_8py_source.html b/doc/html/pso__example_8py_source.html new file mode 100644 index 0000000000000000000000000000000000000000..3d7ef6bb72deaef1311604fc8f4a67412eda0e93 --- /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 +  <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 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 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <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> <span class="comment"># of this software and associated documentation files (the "Software"), to deal</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <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> <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> <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> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <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> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <span class="comment"># must be cited:</span></div> +<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"># </span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <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> <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> <span class="comment"># Algorithms. In Proceedings of GECCO '17, Berlin, Germany, July 15-19, 2017,</span></div> +<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <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> <span class="comment">#</span></div> +<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"># THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <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> <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> <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> <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> <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> <span class="comment"># THE SOFTWARE.</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"># pso_example.cpp</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">#</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"># Created on: 02/Jul/2017</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"># Author: Peter Frank Perroni (pfperroni@gmail.com)</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">#</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <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> </div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">from</span> CSMOn <span class="keyword">import</span> *</div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"># Prepare the Input parameters.</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> bestResult=[<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">"nEvals"</span>, i=0), <a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">"fit"</span>, d=0)]</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> s1=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">"s1"</span>, d=-5.12)</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> s2=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">"s2"</span>, d=5.12)</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> w=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">"w"</span>, d=-0.5)</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> c1=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">"c1"</span>, d=0.2)</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> c2=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">"c2"</span>, d=0.2)</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> n=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">"n"</span>, i=100)</div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> p=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">"p"</span>, i=30)</div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> M=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">"M"</span>, i=50000)</div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> R=<a class="code" href="struct__Param.html">Param</a>(<span class="stringliteral">"</span><span class="stringliteral">R", d=-0.08)</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="stringliteral"></span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <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> res=search(<span class="stringliteral">"pso"</span>, [s1, s2, w, c1, c2, n, p, M, R], bestResult)</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">#Print the results.</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">print</span> <span class="stringliteral">"\nOptimized result: "</span>,res</div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">print</span> <span class="stringliteral">"\nnEvals:"</span>, bestResult[0].i,<span class="stringliteral">", Fitness:"</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  <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 0000000000000000000000000000000000000000..86e6c08c53a1e050eb995cc4504aaca11d37b79c --- /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 0000000000000000000000000000000000000000..f58fc384c92eb5ef105885f2659ac8f1fdf88728 --- /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 0000000000000000000000000000000000000000..122fcbb863f3f9e27700f33d387f52205a18d63c --- /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 0000000000000000000000000000000000000000..02c1ee56de79e06a65af4fe326adde65d7ff4962 --- /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 0000000000000000000000000000000000000000..6850d19b3f6913aad43cb5b203fb945e0f8af317 --- /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 0000000000000000000000000000000000000000..dc289c374bc6b06924013f5b86484504b0dbbf9c --- /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 0000000000000000000000000000000000000000..914288c2685220c8a112bd7fee5701a784add0c6 --- /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 0000000000000000000000000000000000000000..c6e501041cda524c000627df33442c13318263f9 --- /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 0000000000000000000000000000000000000000..47becb88408a9eb1a3136bd88aaa061edef94582 --- /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 0000000000000000000000000000000000000000..d884ca3a94f091063a1eaa079791240db2de70dc --- /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 0000000000000000000000000000000000000000..b11c1d19dd50a532e621cf94b2e99a2facbe7ff3 --- /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 0000000000000000000000000000000000000000..d512dd96ea69efab3c37fc5e43b560d4000fec0c --- /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 0000000000000000000000000000000000000000..a57d74f606b3282ebbd87b44e8d37ccff83fe297 --- /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 0000000000000000000000000000000000000000..2f49c8a0a38bfc43fcb74623cf505f93b4b2fd66 --- /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 0000000000000000000000000000000000000000..ecca25181b37e1d0a05bb342799360ee3cf5520a --- /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 0000000000000000000000000000000000000000..754d3fd5fed0129e8a4b8a92bb3ce50f32c6b0c3 --- /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 0000000000000000000000000000000000000000..f8f85600da41756dd0a49b979ac5379811ab59e0 --- /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 0000000000000000000000000000000000000000..26d541fe1a6d2ff2ddcf0eaa22c0fc58e248693e --- /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 0000000000000000000000000000000000000000..d2e0c9a5a8bc116f282fdf1965131e60d8e4bf12 --- /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 0000000000000000000000000000000000000000..f58fc384c92eb5ef105885f2659ac8f1fdf88728 --- /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 0000000000000000000000000000000000000000..b04aca359af1dacf4856cad902e0e499eece6f70 --- /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 0000000000000000000000000000000000000000..7de6b5f45d7d6a4d2d402774d232cdea87b1dd87 --- /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 0000000000000000000000000000000000000000..ef9c9ed66a67c116510e0ef4df7dbaaaaef169c8 --- /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 0000000000000000000000000000000000000000..c6e501041cda524c000627df33442c13318263f9 --- /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 0000000000000000000000000000000000000000..2e68df4d1becabebfee48f1651131a15f754e097 --- /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 0000000000000000000000000000000000000000..57534f6d1d91dc9c20c23a536b2a0b99433e6db8 --- /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 Binary files /dev/null and b/doc/html/search/close.png differ diff --git a/doc/html/search/files_0.html b/doc/html/search/files_0.html new file mode 100644 index 0000000000000000000000000000000000000000..867c89d591ff05c1d35cd60501a8d20ce5e653d6 --- /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 0000000000000000000000000000000000000000..77d62c6215432e64c87016e2ed6398b9ddeaff74 --- /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 0000000000000000000000000000000000000000..a3f28dcdc15eef4a8d9478da483d25d53a721131 --- /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 0000000000000000000000000000000000000000..7d7f00f11d1ab4456aff276867735a8240c33268 --- /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 0000000000000000000000000000000000000000..abb1f12a40accfc7eeef6e2d082467899449a173 --- /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 0000000000000000000000000000000000000000..dc289c374bc6b06924013f5b86484504b0dbbf9c --- /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 0000000000000000000000000000000000000000..6cc194ad063c631c41e83e29064fbec54bc03e46 --- /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 0000000000000000000000000000000000000000..d884ca3a94f091063a1eaa079791240db2de70dc --- /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 0000000000000000000000000000000000000000..7a9659077d744200773bbf5d70e127ebd93fd083 --- /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 0000000000000000000000000000000000000000..e239409b39feecc5108a264933f47d3e8739884f --- /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 0000000000000000000000000000000000000000..7c0a2955d632c359685b439e2fedba466adeda0d --- /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 0000000000000000000000000000000000000000..2f49c8a0a38bfc43fcb74623cf505f93b4b2fd66 --- /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 0000000000000000000000000000000000000000..6a71f6c0c45ff40a646718eda9a5cff305cf004d --- /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 0000000000000000000000000000000000000000..754d3fd5fed0129e8a4b8a92bb3ce50f32c6b0c3 --- /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 Binary files /dev/null and b/doc/html/search/mag_sel.png differ diff --git a/doc/html/search/nomatches.html b/doc/html/search/nomatches.html new file mode 100644 index 0000000000000000000000000000000000000000..b1ded27e9ad6af3a2ac11e6b21ce159dcaf87e0c --- /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 0000000000000000000000000000000000000000..8ce129938c14dd48b3611fd397a3df182d5822ef --- /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 0000000000000000000000000000000000000000..48a1ace3e4c8ce12e6ba148b5cc8166bfd933fcf --- /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 0000000000000000000000000000000000000000..4d7612ff63e3b5449072d07c3ffc648c6ad0bb11 --- /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 0000000000000000000000000000000000000000..19cfcd6604d7bf190a7e8e08aefbbba8613ef816 --- /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='•'; + } + else + { + node.innerHTML=' '; + } + 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 Binary files /dev/null and b/doc/html/search/search_l.png differ diff --git a/doc/html/search/search_m.png b/doc/html/search/search_m.png new file mode 100644 index 0000000000000000000000000000000000000000..b429a16ba641960da1e52e5da85dc80fd82635c8 Binary files /dev/null and b/doc/html/search/search_m.png differ diff --git a/doc/html/search/search_r.png b/doc/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a Binary files /dev/null and b/doc/html/search/search_r.png differ diff --git a/doc/html/search/typedefs_0.html b/doc/html/search/typedefs_0.html new file mode 100644 index 0000000000000000000000000000000000000000..5f65d74cc31b08f54179202a7fa8b3978693d284 --- /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 0000000000000000000000000000000000000000..74379b3fc670747caeddc0373a99705214d2da9a --- /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 0000000000000000000000000000000000000000..d4e50cddfc0e2f7c0e7a93588e27b613cc6d7141 --- /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 +  <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 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 List</span></a></li> + <li><a href="classes.html"><span>Class Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Class 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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  <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 0000000000000000000000000000000000000000..64ef722ea2c3aadf6232b90cd732c0ab1e08382f --- /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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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 * </td><td class="memItemRight" valign="bottom"><b>name</b></td></tr> +<tr class="separator:ac547bee005d20081bcac4b2e347011f1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aff85041148fac4f0a6a066dcf291f301"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff85041148fac4f0a6a066dcf291f301"></a> +char </td><td class="memItemRight" valign="bottom"><b>c</b></td></tr> +<tr class="separator:aff85041148fac4f0a6a066dcf291f301"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5b019b7151eaacdeb2e5ddfd31ac96fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b019b7151eaacdeb2e5ddfd31ac96fa"></a> +int </td><td class="memItemRight" valign="bottom"><b>i</b></td></tr> +<tr class="separator:a5b019b7151eaacdeb2e5ddfd31ac96fa"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a634a0fb95ba41349d69f4b5095531ddf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a634a0fb95ba41349d69f4b5095531ddf"></a> +long </td><td class="memItemRight" valign="bottom"><b>l</b></td></tr> +<tr class="separator:a634a0fb95ba41349d69f4b5095531ddf"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a56df5e8e86e4f51c7f3031731951d1e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56df5e8e86e4f51c7f3031731951d1e9"></a> +float </td><td class="memItemRight" valign="bottom"><b>f</b></td></tr> +<tr class="separator:a56df5e8e86e4f51c7f3031731951d1e9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8cfc8683385e1ecbd2daedd1a05eb787"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cfc8683385e1ecbd2daedd1a05eb787"></a> +double </td><td class="memItemRight" valign="bottom"><b>d</b></td></tr> +<tr class="separator:a8cfc8683385e1ecbd2daedd1a05eb787"><td class="memSeparator" colspan="2"> </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  <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 0000000000000000000000000000000000000000..c775d93685aa3a334a42ffec9730859ee65f0550 --- /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 +  <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 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 List</span></a></li> + <li><a href="classes.html"><span>Class Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Class 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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  <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 0000000000000000000000000000000000000000..99a03d4d8fc51a3d7ff6f9fbca5eb5e74cecbf67 --- /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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data 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 Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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> | +<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 <<a class="el" href="CSMOn_8hpp_source.html">CSMOn.hpp</a>></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> + </td><td class="memItemRight" valign="bottom"><b>_point</b> (int _x, int _y)</td></tr> +<tr class="separator:a57c9fc97f1ffeabe2bea2d95439b426e"><td class="memSeparator" colspan="2"> </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 </td><td class="memItemRight" valign="bottom"><b>x</b></td></tr> +<tr class="separator:aab3e88bcfd12e8f43ff8b95a9a5b62c4"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad466443e70f7ff7bcb1d2f8fda2c7168"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad466443e70f7ff7bcb1d2f8fda2c7168"></a> +double </td><td class="memItemRight" valign="bottom"><b>y</b></td></tr> +<tr class="separator:ad466443e70f7ff7bcb1d2f8fda2c7168"><td class="memSeparator" colspan="2"> </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  <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 Binary files /dev/null and b/doc/html/sync_off.png differ diff --git a/doc/html/sync_on.png b/doc/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 Binary files /dev/null and b/doc/html/sync_on.png differ diff --git a/doc/html/tab_a.png b/doc/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 Binary files /dev/null and b/doc/html/tab_a.png differ diff --git a/doc/html/tab_b.png b/doc/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 Binary files /dev/null and b/doc/html/tab_b.png differ diff --git a/doc/html/tab_h.png b/doc/html/tab_h.png new file mode 100644 index 0000000000000000000000000000000000000000..fd5cb705488e60fcf30f56fcc951dee74f3b095b Binary files /dev/null and b/doc/html/tab_h.png differ diff --git a/doc/html/tab_s.png b/doc/html/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50 Binary files /dev/null and b/doc/html/tab_s.png differ diff --git a/doc/html/tabs.css b/doc/html/tabs.css new file mode 100644 index 0000000000000000000000000000000000000000..9cf578f23a154ff026365d61ea59013ad431466b --- /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 0000000000000000000000000000000000000000..eac981070b39c05a7e6ae521db606ef1e76b97a1 --- /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 0000000000000000000000000000000000000000..3ed826eb09ce646fa468cd92e3b5ad2438a355a1 --- /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 0000000000000000000000000000000000000000..e3a36bb8524dfd9995290b7254bf74d2252e033a --- /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 0000000000000000000000000000000000000000..dc2f14fe030bb2647999d4464abe2d773dd2f36c --- /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 0000000000000000000000000000000000000000..c613c4e16ac675e01017f286137216f032920ecf --- /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