From 12777a624aa53cace6a37ed8bbf9b93ad31f4999 Mon Sep 17 00:00:00 2001 From: boufaras Date: Thu, 12 Jan 2012 10:08:54 +0000 Subject: [PATCH] update with the change git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@2627 331e1502-861f-0410-8da2-ba01fb791d7f --- .../neighborhood/moNeighborhoodSizeUtils.h | 67 ------ .../src/neighborhood/moXChangeNeighbor.h | 215 ------------------ 2 files changed, 282 deletions(-) delete mode 100755 branches/ParadisEO-GPU/paradiseo-gpu/src/neighborhood/moNeighborhoodSizeUtils.h delete mode 100755 branches/ParadisEO-GPU/paradiseo-gpu/src/neighborhood/moXChangeNeighbor.h diff --git a/branches/ParadisEO-GPU/paradiseo-gpu/src/neighborhood/moNeighborhoodSizeUtils.h b/branches/ParadisEO-GPU/paradiseo-gpu/src/neighborhood/moNeighborhoodSizeUtils.h deleted file mode 100755 index 5a17d475b..000000000 --- a/branches/ParadisEO-GPU/paradiseo-gpu/src/neighborhood/moNeighborhoodSizeUtils.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - - Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 - - Karima Boufaras, Thé Van LUONG - - This software is governed by the CeCILL license under French law and - abiding by the rules of distribution of free software. You can use, - modify and/ or redistribute the software under the terms of the CeCILL - license as circulated by CEA, CNRS and INRIA at the following URL - "http://www.cecill.info". - - As a counterpart to the access to the source code and rights to copy, - modify and redistribute granted by the license, users are provided only - with a limited warranty and the software's author, the holder of the - economic rights, and the successive licensors have only limited liability. - - In this respect, the user's attention is drawn to the risks associated - with loading, using, modifying and/or developing or reproducing the - software by the user in light of its specific status of free software, - that may mean that it is complicated to manipulate, and that also - therefore means that it is reserved for developers and experienced - professionals having in-depth computer knowledge. Users are therefore - encouraged to load and test the software's suitability as regards their - requirements in conditions enabling the security of their systems and/or - data to be ensured and, more generally, to use and operate it in the - same conditions as regards security. - The fact that you are presently reading this means that you have had - knowledge of the CeCILL license and that you accept its terms. - - ParadisEO WebSite : http://paradiseo.gforge.inria.fr - Contact: paradiseo-help@lists.gforge.inria.fr -*/ - -#ifndef _moNeighborhoodSizeUtils_h -#define _moNeighborhoodSizeUtils_h - -/** - * @return the factorial of an integer - * @param _i an integer - */ - -static int factorial(int _i) { - if (_i == 0) - return 1; - else - return _i * factorial(_i - 1); -} - -/** - * @return the neighborhood Size from the solution size and the exchange distance - * @param _n the solution size - * @param _xChange the number of positions to change - */ - -static int sizeMapping(int _n, unsigned int _xChange) { - int _sizeMapping; - _sizeMapping = _n; - for (int i = _xChange-1; i > 0; i--) { - _sizeMapping *= (_n - i); - } - _sizeMapping /= factorial(_xChange); - return _sizeMapping; -} - - -#endif diff --git a/branches/ParadisEO-GPU/paradiseo-gpu/src/neighborhood/moXChangeNeighbor.h b/branches/ParadisEO-GPU/paradiseo-gpu/src/neighborhood/moXChangeNeighbor.h deleted file mode 100755 index 64ed465bd..000000000 --- a/branches/ParadisEO-GPU/paradiseo-gpu/src/neighborhood/moXChangeNeighbor.h +++ /dev/null @@ -1,215 +0,0 @@ -/* - - Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 - - Boufaras Karima, Thé Van Luong - - This software is governed by the CeCILL license under French law and - abiding by the rules of distribution of free software. You can use, - modify and/ or redistribute the software under the terms of the CeCILL - license as circulated by CEA, CNRS and INRIA at the following URL - "http://www.cecill.info". - - In this respect, the user's attention is drawn to the risks associated - with loading, using, modifying and/or developing or reproducing the - software by the user in light of its specific status of free software, - that may mean that it is complicated to manipulate, and that also - therefore means that it is reserved for developers and experienced - professionals having in-depth computer knowledge. Users are therefore - encouraged to load and test the software's suitability as regards their - requirements in conditions enabling the security of their systems and/or - data to be ensured and, more generally, to use and operate it in the - same conditions as regards security. - The fact that you are presently reading this means that you have had - knowledge of the CeCILL license and that you accept its terms. - - ParadisEO WebSite : http://paradiseo.gforge.inria.fr - Contact: paradiseo-help@lists.gforge.inria.fr - */ - -#ifndef _moXChangeNeighbor_h -#define _moXChangeNeighbor_h - -#include - -/** - * A X-Change Neighbor - * useful in parallel computing, it allows to associate to a neighbor represented by a single index,a set of indices - * to build the neighbor from the solution and the number of positions to change - */ - -template -class moXChangeNeighbor: virtual public moIndexNeighbor { - -public: - - using moIndexNeighbor::key; - - /** - * Default Constructor - */ - - moXChangeNeighbor() : - moIndexNeighbor (),xChange(0) { - indices = NULL; - } - - /** - * Default destructor - */ - - ~moXChangeNeighbor() { - delete[] (indices); - } - - /** - * Constructor - * @param _xChange the number of x-change to do - */ - - moXChangeNeighbor(unsigned int _xChange) { - xChange = _xChange; - indices = new unsigned int[xChange]; - } - - /** - * Copy Constructor - * @param _n the neighbor to copy - */ - - moXChangeNeighbor(const moXChangeNeighbor& _n) : - moIndexNeighbor (_n) { - this->xChange = _n.xChange; - this->indices = new unsigned int[xChange]; - for (unsigned int i = 0; i < xChange; i++) - this->indices[i] = _n.indices[i]; - } - - /** - * Assignment operator - * @param _source the neighbor to assign to this curent neighbor - */ - - virtual moXChangeNeighbor & operator=( - const moXChangeNeighbor & _source) { - moIndexNeighbor::operator=(_source); - this->xChange = _source.xChange; - this->reSizeIndices(xChange); - for (unsigned int i = 0; i < xChange; i++) - this->indices[i] = _source.indices[i]; - return *this; - } - - /** - * Setter to update the i'th index of x-change - * @param _i the index to update - * @param _val the new value to set to the i'th index of x-change - */ - - void setIndice(unsigned int _i, unsigned int _val) { - indices[_i] = _val; - } - - /** - * Get the i'th index of x-change - */ - - unsigned int getIndice(unsigned int _i) { - return indices[_i]; - } - - /** - * Setter to update the set of x-change indexes - * @param _indices the set of new value indexes of the x-change - */ - - void setIndices(unsigned int * _indices) { - for (unsigned int i = 0; i < xChange; i++) { - setIndice(i, _indices[i]); - } - } - - /** - * Setter to fix the xChange - * @param _xChange the number of swap - */ - - void setXChange(unsigned int _xChange) { - xChange = _xChange; - reSizeIndices(_xChange); - } - - /** - * Get the number of swap - */ - - unsigned int getXChange() { - return xChange; - } - - /** - * Resize the indices array of x-change indexes - *@param _xChange the number of x-change - */ - - void reSizeIndices(unsigned int _xChange) { - delete[] (indices); - indices = new unsigned int[_xChange]; - } - - /** - * Return the class name. - * @return the class name as a std::string - */ - - virtual std::string className() const { - return "moXChangeNeighbor"; - } - - /** - * Read object.\ - * Calls base class, just in case that one had something to do. - * The read and print methods should be compatible and have the same format. - * In principle, format is "plain": they just print a number - * @param _is a std::istream. - * @throw runtime_std::exception If a valid object can't be read. - */ - - virtual void readFrom(std::istream& _is) { - std::string fitness_str; - int pos = _is.tellg(); - _is >> fitness_str; - if (fitness_str == "INVALID") { - throw std::runtime_error("invalid fitness"); - } else { - Fitness repFit; - _is.seekg(pos); - _is >> repFit; - _is >> xChange; - _is >> key; - for (unsigned int i = 0; i < xChange; i++) - _is >> indices[i]; - fitness(repFit); - } - } - - /** - * Print the Neighbor - */ - - void print() { - std::cout << "["; - for (unsigned int i = 0; i < xChange; i++) - std::cout<< indices[i]<< " "; - std::cout << "] -> " << (*this).fitness() << std::endl; - } - -protected: - - unsigned int * indices; - unsigned int xChange; - -}; - -#endif -