dummy merge

This commit is contained in:
nojhan 2011-07-26 17:53:20 +02:00
commit 4e0a6fdeff
4 changed files with 373 additions and 329 deletions

View file

@ -21,8 +21,8 @@
Contact: http://eodev.sourceforge.net
Authors:
Johann Dréo <johann.dreo@thalesgroup.com>
Caner Candan <caner.candan@thalesgroup.com>
Johann Dréo <johann.dreo@thalesgroup.com>
Caner Candan <caner.candan@thalesgroup.com>
*/
@ -40,17 +40,7 @@ Authors:
#include "eoLogger.h"
eoLogger::eoLogger() :
std::ostream(&_obuf),
_verbose("quiet", "verbose", "Set the verbose level", 'v'),
_printVerboseLevels(false, "print-verbose-levels", "Print verbose levels", 'l'),
_output("", "output", "Redirect a standard output to a file", 'o'),
_selectedLevel(eo::progress),
_contextLevel(eo::quiet),
_fd(2),
_obuf(_fd, _contextLevel, _selectedLevel)
void eoLogger::_init()
{
_standard_io_streams[&std::cout] = 1;
_standard_io_streams[&std::clog] = 2;
@ -67,6 +57,37 @@ eoLogger::eoLogger() :
addLevel("xdebug", eo::xdebug);
}
eoLogger::eoLogger() :
std::ostream(&_obuf),
_verbose("quiet", "verbose", "Set the verbose level", 'v'),
_printVerboseLevels(false, "print-verbose-levels", "Print verbose levels", 'l'),
_output("", "output", "Redirect a standard output to a file", 'o'),
_selectedLevel(eo::progress),
_contextLevel(eo::quiet),
_fd(2),
_obuf(_fd, _contextLevel, _selectedLevel)
{
_init();
}
eoLogger::eoLogger(eo::file file) :
std::ostream(&_obuf),
_verbose("quiet", "verbose", "Set the verbose level", 'v'),
_printVerboseLevels(false, "print-verbose-levels", "Print verbose levels", 'l'),
_output("", "output", "Redirect a standard output to a file", 'o'),
_selectedLevel(eo::progress),
_contextLevel(eo::quiet),
_fd(2),
_obuf(_fd, _contextLevel, _selectedLevel)
{
_init();
*this << file;
}
eoLogger::~eoLogger()
{
if (_fd > 2) { ::close(_fd); }
@ -99,7 +120,7 @@ void eoLogger::_createParameters( eoParser& parser )
//------------------------------------------------------------------
// // we're gonna print the list of levels if -l parameter is used.
// we're gonna print the list of levels if -l parameter is used.
//------------------------------------------------------------------
if ( _printVerboseLevels.value() )
@ -195,7 +216,6 @@ namespace eo
{}
}
//! make_verbose gets level of verbose and sets it in eoLogger
void make_verbose(eoParser& parser)
{
eo::log._createParameters( parser );

View file

@ -142,12 +142,20 @@ class eoLogger : public eoObject,
public std::ostream
{
public:
//! default ctor
eoLogger();
//! overidded ctor in order to instanciate a logger with a file define in parameter
eoLogger(eo::file file);
//! dtor
~eoLogger();
//! common function for all eo objects
virtual std::string className() const;
//! Print the available levels on the standard output
//! enablable with the option -l
void printLevels() const;
/*! Returns the selected levels, that is the one asked by the user
@ -163,11 +171,16 @@ public:
inline eo::Levels getLevelContext() const { return _contextLevel; }
protected:
//! in order to add a level of verbosity
void addLevel(std::string name, eo::Levels level);
private:
//! used by the function make_verbose in order to add options to specify the verbose level
void _createParameters( eoParser& );
//! used by the set of ctors to initiate some useful variables
void _init();
private:
/**
* outbuf
@ -195,21 +208,26 @@ public:
/**
* operator<< used there to set a verbose mode.
*/
//! in order to use stream style to define the context verbose level where the following logs will be saved
friend eoLogger& operator<<(eoLogger&, const eo::Levels);
/**
* operator<< used there to set a filename through the class file.
*/
//! in order to use stream style to define a file to dump instead the standart output
friend eoLogger& operator<<(eoLogger&, eo::file);
/**
* operator<< used there to set a verbose level through the class setlevel.
*/
//! in order to use stream style to define manually the verbose level instead using options
friend eoLogger& operator<<(eoLogger&, eo::setlevel);
/**
* operator<< used there to be able to use std::cout to say that we wish to redirect back the buffer to a standard output.
*/
//! in order to use stream style to go back to a standart output defined by STL
//! and to get retro-compatibility
friend eoLogger& operator<<(eoLogger&, std::ostream&);
private:
@ -254,6 +272,7 @@ private:
/** @example t-eoLogger.cpp
*/
//! make_verbose gets level of verbose and sets it in eoLogger
void make_verbose(eoParser&);
namespace eo

View file

@ -1,33 +1,44 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
<meta name=" robot" content="follow, index, all" />
<meta name="author" content="EO development team">
<meta name="keywords" content="Class libraries, evolutionary computation, evolution strategies, genetic algorithms, genetic programming, simulated annealing, C++">
<meta name="resource-type" content="document">
<meta name="distribution" content="Global">
<head>
<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />
<meta name=" robot" content="follow, index, all" />
<meta name="author" content="EO development team" />
<meta name="keywords" content="Class libraries, evolutionary computation, evolution strategies, genetic algorithms, genetic programming, simulated annealing, C++" />
<meta name="resource-type" content="document" />
<meta name="distribution" content="Global" />
<link rel="icon" type="image/png" href="eo_ico.png" />
<link rel="stylesheet" type="text/css" href="lightblue.css" title="Default" />
<title>Evolving Objects (EO): Evolutionary Computation Framework</title>
</head>
<title>Evolving Objects (EO): Evolutionary Computation Framework</title>
<body>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript" src="https://static.jappix.com/php/get.php?l=fr&amp;t=js&amp;g=mini.xml"></script>
<div id="alt">
<img style="clear:left;" src="eo_logo.png" alt="Evolving Objects logo" />
<div id="menu">
<script type="text/javascript">
jQuery(document).ready(function() {
MINI_GROUPCHATS = ["eo@chat.jabberfr.org"];
MINI_ANIMATE = true;
launchMini(false, true, "anonymous.jappix.com");
});
</script>
</head>
<body>
<div id="alt">
<img style="clear:left;" src="eo_logo.png" alt="Evolving Objects logo" />
<div id="menu">
<p>C++ evolutionary computation components framework</p>
<script type="text/javascript" src="http://www.ohloh.net/p/16924/widgets/project_thin_badge.js"></script>
<div class="shortcuts">
<p>Shortcuts:</p>
<ul>
<p>Shortcuts:</p>
<ul>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=9775">Download</a></li>
<li><a href="http://eodev.sourceforge.net/eo/tutorial/html/eoTutorial.html">Tutorial</a></li>
<li><a href="https://sourceforge.net/apps/trac/eodev/wiki/faq">FAQ</a></li>
@ -37,42 +48,42 @@
<!--<li><a href="http://chat.jabberfr.org/muckl_int/index.php?room=eo">Chat with us</a></li>-->
<li><a href="https://sourceforge.net/apps/trac/eodev/wiki/WikiStart">Submit a bug</a></li>
<li>see also <a href="http://paradiseo.gforge.inria.fr/">ParadisEO</a></li>
</ul>
</ul>
</div>
<div class="shortcuts">
<ol>
<ol>
<lh>Jump to section:</lh>
<li>
<ol>
<lh><a href="#Features">Features</a></lh>
<li><a href="#Component-based">Component-based</a></li>
<li><a href="#Main-Features">Main Features</a></li>
<li><a href="#Portability">Portability</a></li>
<li><a href="#Presentations">Presentations</a></li>
</ol>
<ol>
<lh><a href="#Features">Features</a></lh>
<li><a href="#Component-based">Component-based</a></li>
<li><a href="#Main-Features">Main Features</a></li>
<li><a href="#Portability">Portability</a></li>
<li><a href="#Presentations">Presentations</a></li>
</ol>
</li>
<li>
<ol>
<lh><a href="#Code">Code</a></lh>
<li><a href="#Download">Download</a></li>
<li><a href="#Facts">Facts</a></li>
<li><a href="#License">License</a></li>
<li><a href="#Documentation">Documentation</a></li>
</ol>
<ol>
<lh><a href="#Code">Code</a></lh>
<li><a href="#Download">Download</a></li>
<li><a href="#Facts">Facts</a></li>
<li><a href="#License">License</a></li>
<li><a href="#Documentation">Documentation</a></li>
</ol>
</li>
<li>
<ol>
<a href="#Development">Development</a></li>
<li><a href="#Mailing-lists">Mailing-lists</a></li>
<li><a href="#Get-involved">Get involved</a></li>
<li><a href="#Related-software">Related software</a></li>
<li><a href="#Authors">Authors</a></li>
<li><a href="#Links">Links</a></li>
</ol>
<ol>
<lh><a href="#Development">Development</a></lh>
<li><a href="#Mailing-lists">Mailing-lists</a></li>
<li><a href="#Get-involved">Get involved</a></li>
<li><a href="#Related-software">Related software</a></li>
<li><a href="#Authors">Authors</a></li>
<li><a href="#Links">Links</a></li>
</ol>
</li>
</ol>
</div><!-- class=shortcuts -->
</ol>
</div><!-- class=shortcuts -->
<ul class="badges">
<li>
@ -184,23 +195,20 @@
<br />
</p>
<h1><a name="Features"></a>Features <a href="#Plan"></a></h1>
<h2><a name="Component-based"></a>Component-based framework</h2>
<p>Designing an algorithm with EO consists in choosing what components you want to use for your specific needs, just as building a structure with Lego blocks.</p>
<p>If you have a classical problem for which available code exists (for example if you have a black-box problem with real-valued variables), you will just choose components to form an algorithm and connect it to your <em>fitness function</em> (which computes the quality of a given solution).</p>
<p>If your problem is a bit more exotic, you will have to code a class that represents how your <em>individuals</em> (a solution to your problem) are represented, and perhaps some <em>variations operators</em>, but most of the other operators (selection, replacement, stopping criteria, command-line interface, etc.) are already available in EO.</p>
<p><img src="Evolutionary_algorithm.png" title="A typical Evolutionary Algorithm, as seen from the EO point of vue Johann Dréo CC-BY-SA" /></p>
<h1><a name="Features"></a>Features <a href="#Plan"></a></h1>
<h2><a name="Main-Features"></a>Main Features</h2>
<h2><a name="Component-based"></a>Component-based framework</h2>
<!-- <img src="http://upload.wikimedia.org/wikipedia/en/timeline/3f507249a36a4a38020e7fc0a5f448df.png" title="Metaheuristics that can be implemented with EO and ParadisEO, ordered by date of invention Johann Dréo/Wikipédia CC-BY-SA" style="float:right;" /> --> <!-- http://en.wikipedia.org/wiki/Metaheuristic -->
<p>Designing an algorithm with EO consists in choosing what components you want to use for your specific needs, just as building a structure with Lego blocks.</p>
<p>If you have a classical problem for which available code exists (for example if you have a black-box problem with real-valued variables), you will just choose components to form an algorithm and connect it to your <em>fitness function</em> (which computes the quality of a given solution).</p>
<p>If your problem is a bit more exotic, you will have to code a class that represents how your <em>individuals</em> (a solution to your problem) are represented, and perhaps some <em>variations operators</em>, but most of the other operators (selection, replacement, stopping criteria, command-line interface, etc.) are already available in EO.</p>
<p><img src="Evolutionary_algorithm.png" title="A typical Evolutionary Algorithm, as seen from the EO point of vue Johann Dréo CC-BY-SA" /></p>
<h2><a name="Main-Features"></a>Main Features</h2>
<!-- <img src="http://upload.wikimedia.org/wikipedia/en/timeline/3f507249a36a4a38020e7fc0a5f448df.png" title="Metaheuristics that can be implemented with EO and ParadisEO, ordered by date of invention Johann Dréo/Wikipédia CC-BY-SA" style="float:right;" /> --> <!-- http://en.wikipedia.org/wiki/Metaheuristic -->
<table style="float:right;" class="examples">
<table style="float:right;" class="examples">
<caption>Examples of problems that you can solve with the help of EO:</caption>
<tr><td>
<img src="Gallagher_Gaussian_BBOB_f21.png" title="Continuous problems (here Gallagher's Gaussian 101-me Peaks function, Black Box Optimization Benchmark, f21 COCO team)" /> <!-- http://coco.lri.fr/BBOB-downloads/download10.2/bbobdocfunctions.pdf -->
@ -211,345 +219,342 @@
<tr><td>
<img src="BatchGantt1.png" title="Planning problems (here a Gantt Chart for a Batch Process Casilett DP)" /><!-- http://en.wikipedia.org/wiki/File:BatchGantt1.png -->
</tr></td>
</table>
</table>
<ul>
<ul>
<li>Flexible design that permits to easily create virtually any algorithm</li>
<li>Solution representation for continuous and combinatorial problems:
<ul>
<li>binary-strings,</li>
<li>permutations,</li>
<li>vectors,</li>
<li>easily write your own,</li>
<li></li>
</ul>
<ul>
<li>binary-strings,</li>
<li>permutations,</li>
<li>vectors,</li>
<li>easily write your own,</li>
<li></li>
</ul>
</li>
<li>Several algorithm paradigms:
<ul>
<li>evolution strategies,</li>
<li>genetic algorithms,</li>
<li>estimation of distribution,</li>
<li>particle swarm optimization</li>
<li></li>
</ul>
<ul>
<li>evolution strategies,</li>
<li>genetic algorithms,</li>
<li>estimation of distribution,</li>
<li>particle swarm optimization</li>
<li></li>
</ul>
</li>
<li>Many selection and replacement operators:
<ul>
<li>rank-based,</li>
<li>deterministic or stochastic tournaments,</li>
<li>roulette,</li>
<li>elitism,</li>
<li></li>
</ul>
<ul>
<li>rank-based,</li>
<li>deterministic or stochastic tournaments,</li>
<li>roulette,</li>
<li>elitism,</li>
<li></li>
</ul>
</li>
<li>Ready-to-use variations operators:
<ul>
<li>uniform initializer,
<li>gaussian mutation,
<li>subtree crossover,
<li></li>
</ul>
<ul>
<li>uniform initializer,</li>
<li>gaussian mutation,</li>
<li>subtree crossover,</li>
<li></li>
</ul>
</li>
<li>Easy combination of several operators:
<ul>
<li>proportional combination,</li>
<li>sequential call,</li>
<li></li>
</ul>
<ul>
<li>proportional combination,</li>
<li>sequential call,</li>
<li></li>
</ul>
</li>
<li>Portable and human-readable parameter files</li>
<li>Suspend and load population from files</li>
<li>Versatile checkpointing and logging:
<ul>
<li>graphical display,</li>
<li>file dump,</li>
<li>various statistics,</li>
<li>signal catching,</li>
<li></li>
</ul>
<ul>
<li>graphical display,</li>
<li>file dump,</li>
<li>various statistics,</li>
<li>signal catching,</li>
<li></li>
</ul>
</li>
<li>Mersenne Twister random number generator (and various distributions)</li>
<li>No useless computation (sparing fitness call, functor-based calls)</li>
<li>Fast running speed, thanks to C++</li>
<li><em>And more!</em></li>
</ul>
</ul>
<h2><a name="Portability"></a>Portability</h2>
<p> EO should work on Windows and any Un*x-like operating system with a
<h2><a name="Portability"></a>Portability</h2>
<p> EO should work on Windows and any Un*x-like operating system with a
standard-conforming C++ development system. </p>
<p>Recent versions of EO have been tested on the following platforms:
</p>
<p>Recent versions of EO have been tested on the following platforms:
</p>
<ul>
<li>Linux x86 with GCC 3.x and 4.x</li>
<li>Linux x86_64 with GCC 3.x and GCC 4.x</li>
<li>MacOS X/Darwin PowerPC with GCC 3.x</li>
<li>MacOS X/Darwin x86 with GCC 4.x</li>
<li>Microsoft Windows using Cygwin's GCC 3.x (cygming special).
<li>Microsoft Windows using Visual Studio 2003/2005; projects files
<ul>
<li>Linux x86 with GCC 3.x and 4.x</li>
<li>Linux x86_64 with GCC 3.x and GCC 4.x</li>
<li>MacOS X/Darwin PowerPC with GCC 3.x</li>
<li>MacOS X/Darwin x86 with GCC 4.x</li>
<li>Microsoft Windows using Cygwin's GCC 3.x (cygming special).</li>
<li>Microsoft Windows using Visual Studio 2003/2005; projects files
are provided.</li>
<li>Solaris SPARC with GCC 3.x</li>
<li>Solaris x86 with GCC 3.x</li>
</ul>
<li>Solaris SPARC with GCC 3.x</li>
<li>Solaris x86 with GCC 3.x</li>
</ul>
<p>Recent versions of EO uses the <a href="http://www.cmake.org">CMake</a> portable build system, that permits to easily generate a build chain for your environment.</p>
<p>Recent versions of EO uses the <a href="http://www.cmake.org">CMake</a> portable build system, that permits to easily generate a build chain for your environment.</p>
<p> If you have tested EO on a system not listed here, please <a
href="mailto:eodev-main@lists.sourceforge.net?subject=test-report">let
us know</a>. </p>
<p> If you have tested EO on a system not listed here, please <a href="mailto:eodev-main@lists.sourceforge.net?subject=test-report">let
us know</a>. </p>
<p> If you are working on a system with an older C++ compiler there
<p> If you are working on a system with an older C++ compiler there
is a good chance that eo-0.9.3z.1 works. It is tested on Linux
with gcc-2.9x and several systems (IRIX, Solaris) with egcs. </p>
<h2><a name="Presentations"></a>Presentations</h2>
<h2><a name="Presentations"></a>Presentations</h2>
<p> A functional and "philosophical" overview of EO was presented at <a
href="http://www.cmap.polytechnique.fr/%7Eea01/">EA'01 conference</a>.
You can download <a
href="http://eodev.sourceforge.net/eo/doc/EO_EA2001.pdf">the paper</a>
<p> A functional and "philosophical" overview of EO was presented at <a href="http://www.cmap.polytechnique.fr/%7Eea01/">EA'01 conference</a>.
You can download <a href="http://eodev.sourceforge.net/eo/doc/EO_EA2001.pdf">the paper</a>
or <a href="http://eodev.sourceforge.net/eo/doc/LeCreusot.pdf">the
slides</a>, or browse them right here:</p>
slides</a>, or browse them right here:</p>
<div style="text-align:center;" id="__ss_4878872"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/nojhan/evolving-objects-yet-another-evolutionary-computation-library" title="Evolving Objects: Yet Another Evolutionary Computation Library?">Evolving Objects: Yet Another Evolutionary Computation Library?</a></strong><object id="__sse4878872" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=lecreusot-100731121355-phpapp01&stripped_title=evolving-objects-yet-another-evolutionary-computation-library" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4878872" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=lecreusot-100731121355-phpapp01&stripped_title=evolving-objects-yet-another-evolutionary-computation-library" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<div style="text-align:center;" id="__ss_4878872"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/nojhan/evolving-objects-yet-another-evolutionary-computation-library" title="Evolving Objects: Yet Another Evolutionary Computation Library?">Evolving Objects: Yet Another Evolutionary Computation Library?</a></strong><object id="__sse4878872" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=lecreusot-100731121355-phpapp01&stripped_title=evolving-objects-yet-another-evolutionary-computation-library" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4878872" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=lecreusot-100731121355-phpapp01&stripped_title=evolving-objects-yet-another-evolutionary-computation-library" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p>You can also read this <a href="http://geneura.ugr.es/~jmerelo/GAPPT/index.html">
PowerPoint presentation</a>, that shows the EO philosophy.
<p>You can also read this <a href="http://geneura.ugr.es/~jmerelo/GAPPT/index.html">
PowerPoint presentation</a>, that shows the EO philosophy.
It includes a Visual Basic macro for evolving objects in Visual Basic
for Applications. </p>
<p>EO is described in the following scientific article:<br />
<blockquote>M. Keijzer, J.J. Merelo, G. Romero, G., M. Schoenauer,
<a href= "http://www.lri.fr/~marc/EO/EO-EA01.ps.gz">"Evolving
<p>EO is described in the following scientific article:<br />
<blockquote>M. Keijzer, J.J. Merelo, G. Romero, G., M. Schoenauer,
<a href= "http://www.lri.fr/~marc/EO/EO-EA01.ps.gz">"Evolving
objects: A general purpose evolutionary computation
library",</a> <i>Artificial Evolution</i>, <b>2310</b>, 829--888 (2002).</blockquote>
</p>
</p>
<p>
<font face="monospace">
@<font color="#0000ff">Article</font>{<font color="#ff00ff">Keijzer2001</font>,<br>
&nbsp;&nbsp;<font color="#a52a2a">title</font>&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Evolving Objects: A General Purpose Evolutionary Computation Library &quot;,<br>
&nbsp;&nbsp;<font color="#a52a2a">author</font>&nbsp;=&nbsp;&nbsp;&nbsp; &quot;Maarten Keijzer and J. J. Merelo and G. Romero and M. Schoenauer&quot;,<br>
&nbsp;&nbsp;<font color="#a52a2a">journal</font>&nbsp;=&nbsp;&nbsp;&nbsp;&quot;Artificial Evolution&quot;,<br>
&nbsp;&nbsp;<font color="#a52a2a">year</font>&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;2002&quot;,<br>
&nbsp;&nbsp;<font color="#a52a2a">volume</font>&nbsp;=&nbsp;&nbsp;&nbsp; &quot;2310&quot;,<br>
&nbsp;&nbsp;<font color="#a52a2a">pages</font>&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;829--888&quot;,<br>
&nbsp;&nbsp;<font color="#a020f0">keywords</font>&nbsp;=&nbsp; &quot;genetic algorithms, genetic programming, evolutionary computation, metaheuristic, computational intelligence, optimization&quot;,<br>
&nbsp;&nbsp;<font color="#a020f0">URL</font>&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<a href="http://www.lri.fr/~marc/EO/EO-EA01.ps.gz">http://www.lri.fr/~marc/EO/EO-EA01.ps.gz</a>&quot;,<br>
&nbsp;&nbsp;<font color="#ff00ff">size</font>&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;12 pages&quot;,<br>
&nbsp;&nbsp;<font color="#a020f0">abstract</font>&nbsp;=&nbsp; &quot;This paper presents the evolving objects library<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (EOlib), an object-oriented framework for evolutionary<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; computation (EC)&nbsp;that aims to provide a flexible set of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classes to build EC applications. EOlib design<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objective is to be able to evolve any object in which<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fitness makes sense.&quot;,<br>
}<br>
<br>
</font>
</p>
<p>
<font face="monospace">
@<font color="#0000ff">Article</font>{<font color="#ff00ff">Keijzer2001</font>,<br/>
&nbsp;&nbsp;<font color="#a52a2a">title</font>&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Evolving Objects: A General Purpose Evolutionary Computation Library &quot;,<br/>
&nbsp;&nbsp;<font color="#a52a2a">author</font>&nbsp;=&nbsp;&nbsp;&nbsp; &quot;Maarten Keijzer and J. J. Merelo and G. Romero and M. Schoenauer&quot;,<br/>
&nbsp;&nbsp;<font color="#a52a2a">journal</font>&nbsp;=&nbsp;&nbsp;&nbsp;&quot;Artificial Evolution&quot;,<br/>
&nbsp;&nbsp;<font color="#a52a2a">year</font>&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;2002&quot;,<br/>
&nbsp;&nbsp;<font color="#a52a2a">volume</font>&nbsp;=&nbsp;&nbsp;&nbsp; &quot;2310&quot;,<br/>
&nbsp;&nbsp;<font color="#a52a2a">pages</font>&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;829--888&quot;,<br/>
&nbsp;&nbsp;<font color="#a020f0">keywords</font>&nbsp;=&nbsp; &quot;genetic algorithms, genetic programming, evolutionary computation, metaheuristic, computational intelligence, optimization&quot;,<br/>
&nbsp;&nbsp;<font color="#a020f0">URL</font>&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<a href="http://www.lri.fr/~marc/EO/EO-EA01.ps.gz">http://www.lri.fr/~marc/EO/EO-EA01.ps.gz</a>&quot;,<br/>
&nbsp;&nbsp;<font color="#ff00ff">size</font>&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;12 pages&quot;,<br/>
&nbsp;&nbsp;<font color="#a020f0">abstract</font>&nbsp;=&nbsp; &quot;This paper presents the evolving objects library<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (EOlib), an object-oriented framework for evolutionary<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; computation (EC)&nbsp;that aims to provide a flexible set of<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classes to build EC applications. EOlib design<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objective is to be able to evolve any object in which<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fitness makes sense.&quot;,<br/>
}<br/>
<br/>
</font>
</p>
<p>Here is a list of some known publications that used EO:</p>
<ul class="publications">
<li>J.J. Gilijamse, J. Küpper, S. Hoekstra, S.Y.T. van de Meerakker, G. Meijer,
<a href= "http://dx.doi.org/10.1103/PhysRevA.73.063410">Optimizing the Stark-decelerator beamline for the trapping of
cold molecules using evolutionary strategies</a>,
<i> Physical Review</i>, A <b>73</b>, 063410 (2006). <br/>
Also available at <a href= "http://arxiv.org/abs/physics/0603108"><i>arXiv</i>
physics/0603108 (2006)</a>.</li>
<li>Johann Dreo, <a href="http://www.nojhan.net/pro/spip.php?article31">Using Performance Fronts for Parameter Setting of Stochastic Metaheuristics</a>, <i>Genetic and Evolutionary Computation Conference</i>, (2009).</li>
<li>Jacques Bibaï, Pierre Savéant, Marc Schoenauer, Vincent Vidal, <a href="http://www.aaai.org/ocs/index.php/ICAPS/ICAPS10/paper/view/1414">An Evolutionary Metaheuristic Based on State Decomposition for Domain-Independent Satisficing Planning</a>, <i>Twentieth International Conference on Automated Planning and Scheduling </i> (2010).</li>
<li>Jacques Bibaï, Pierre Savéant, Marc Schoenauer, Vincent Vidal, <a href="">An Evolutionary Metaheuristic for Domain-Independent Satisficing Planning</a>, <i>Genetic and Evolutionary Computation Conference</i> (2010). <em>Silver Medal at the Human-Competitive Competition</em></li>
<p>Here is a list of some known publications that used EO:</p>
<ul class="publications">
<li>J.J. Gilijamse, J. Küpper, S. Hoekstra, S.Y.T. van de Meerakker, G. Meijer,
<a href= "http://dx.doi.org/10.1103/PhysRevA.73.063410">Optimizing the Stark-decelerator beamline for the trapping of
cold molecules using evolutionary strategies</a>,
<i> Physical Review</i>, A <b>73</b>, 063410 (2006). <br/>
Also available at <a href= "http://arxiv.org/abs/physics/0603108"><i>arXiv</i>
physics/0603108 (2006)</a>.</li>
<li>Johann Dreo, <a href="http://www.nojhan.net/pro/spip.php?article31">Using Performance Fronts for Parameter Setting of Stochastic Metaheuristics</a>, <i>Genetic and Evolutionary Computation Conference</i>, (2009).</li>
<li>Jacques Bibaï, Pierre Savéant, Marc Schoenauer, Vincent Vidal, <a href="http://www.aaai.org/ocs/index.php/ICAPS/ICAPS10/paper/view/1414">An Evolutionary Metaheuristic Based on State Decomposition for Domain-Independent Satisficing Planning</a>, <i>Twentieth International Conference on Automated Planning and Scheduling </i> (2010).</li>
<li>Jacques Bibaï, Pierre Savéant, Marc Schoenauer, Vincent Vidal, <a href="">An Evolutionary Metaheuristic for Domain-Independent Satisficing Planning</a>, <i>Genetic and Evolutionary Computation Conference</i> (2010). <em>Silver Medal at the Human-Competitive Competition</em></li>
</ul>
<h1><a name="Code"></a>Code <a href="#Plan"></a></h1>
<h1><a name="Code"></a>Code <a href="#Plan"></a></h1>
<h2><a name="Download"></a>Download</h2>
<h2><a name="Download"></a>Download</h2>
<p> The current stable release is <a
href="http://sourceforge.net/project/showfiles.php?group_id=9775">EO 1.0</a>.
<p> The current stable release is <a
href="http://sourceforge.net/project/showfiles.php?group_id=9775">EO 1.0</a>.
It supports any standard-compliant C++ compiler. </p>
<p> You can obtain the latest version directly via <a
href="https://sourceforge.net/scm/?type=git&group_id=9775">GIT</a>
<p> You can obtain the latest version directly via <a
href="https://sourceforge.net/scm/?type=git&group_id=9775">GIT</a>
or <a href="http://eodev.git.sourceforge.net/git/gitweb.cgi?p=eodev/eodev;a=tree;f=eo;h=d93666f049104f360ffdff3af0bf54902e2feae1;hb=HEAD">browse the repository online</a>.
<!-- or download a daily snapshot from <a
href="http://www.lri.fr/%7Emarc/EO/snapshot">LRI</a> -->
</p>
href="http://www.lri.fr/%7Emarc/EO/snapshot">LRI</a> -->
</p>
<p> All releases can be obtained from the SourceForge <a
href="http://sourceforge.net/project/showfiles.php?group_id=9775">download
area</a>. </p>
<p> All releases can be obtained from the SourceForge <a
href="http://sourceforge.net/project/showfiles.php?group_id=9775">download
area</a>. </p>
<h2><a name="Facts"></a>Facts</h2>
<h2><a name="Facts"></a>Facts</h2>
<p>Those statistics are automatically generated by <a href="https://www.ohloh.net/p/eodev">ohloh.net</a>, directly from the EO source code.</p>
<p>Those statistics are automatically generated by <a href="https://www.ohloh.net/p/eodev">ohloh.net</a>, directly from the EO source code.</p>
<table>
<tr>
<td><script type="text/javascript" src="http://www.ohloh.net/p/16924/widgets/project_languages.js"></script></td>
<td><script type="text/javascript" src="http://www.ohloh.net/p/16924/widgets/project_basic_stats.js"></script></td>
</tr>
<tr>
<td><script type="text/javascript" src="http://www.ohloh.net/p/16924/widgets/project_factoids.js"></script></td>
<td><script type="text/javascript" src="http://www.ohloh.net/p/16924/widgets/project_cocomo.js"></script></td>
</tr>
</table>
<table>
<tr>
<td><script type="text/javascript" src="http://www.ohloh.net/p/16924/widgets/project_languages.js"></script></td>
<td><script type="text/javascript" src="http://www.ohloh.net/p/16924/widgets/project_basic_stats.js"></script></td>
</tr>
<tr>
<td><script type="text/javascript" src="http://www.ohloh.net/p/16924/widgets/project_factoids.js"></script></td>
<td><script type="text/javascript" src="http://www.ohloh.net/p/16924/widgets/project_cocomo.js"></script></td>
</tr>
</table>
<h2><a name="License"></a>License</h2>
<h2><a name="License"></a>License</h2>
<p>EO is distributed under the
<p>EO is distributed under the
<a href="http://www.gnu.org/copyleft/lesser.html">
GNU Lesser General Public License</a>.</p>
GNU Lesser General Public License</a>.</p>
<p>Note that this license places copyleft restrictions on a program created with EO, but does not apply these restrictions to other software that would links with the program.</p>
<p>Note that this license places copyleft restrictions on a program created with EO, but does not apply these restrictions to other software that would links with the program.</p>
<h2><a name="Documentation"></a>Documentation</h2>
<h2><a name="Documentation"></a>Documentation</h2>
<p>The tutorial demonstrates that writing an evolutionary algorithm
<p>The tutorial demonstrates that writing an evolutionary algorithm
evolving your own structures is now <em>easy</em>, using ready-to-use
template files. Although the tutorial has not been upgraded for some
time now and refers to version 0.9.2 of EO, it nevertheless remains the
best way to dive into EO. You can start by trying it on-line at <a
href="http://www.lri.fr/%7Emarc/EO/eo/tutorial/html/eoTutorial.html">LRI</a>
href="http://www.lri.fr/%7Emarc/EO/eo/tutorial/html/eoTutorial.html">LRI</a>
or <a
href="http://eodev.sourceforge.net/eo/tutorial/html/eoTutorial.html">SourceForge</a>,
href="http://eodev.sourceforge.net/eo/tutorial/html/eoTutorial.html">SourceForge</a>,
before <a href="http://www.lri.fr/%7Emarc/EO/">downloading it</a>. The
tutorial is also included in the <a
href="http://sourceforge.net/project/showfiles.php?group_id=9775">released
sources</a>. </p>
href="http://sourceforge.net/project/showfiles.php?group_id=9775">released
sources</a>. </p>
<p>The latest <a
href="http://eodev.sourceforge.net/eo/tutorial/html/eoTutorial.html">tutorial
release</a>.
</p>
<p>The latest <a
href="http://eodev.sourceforge.net/eo/tutorial/html/eoTutorial.html">tutorial
release</a>.
</p>
<p>The complete code is also well documented and you can look at the
<p>The complete code is also well documented and you can look at the
generated <a
href="http://eodev.sourceforge.net/eo/doc/html/index.html">interface
documentation</a>. </p>
href="http://eodev.sourceforge.net/eo/doc/html/index.html">interface
documentation</a>. </p>
<p>The easiest way to create a complete new EO-project, even for new
<p>The easiest way to create a complete new EO-project, even for new
genomes, is to use the script provided in tutorial/Templates/; see
the README in that directory and lesson 5 of the tutorial for
detail.</p>
<h1><a name="Development"></a>Development <a href="#Plan"></a></h1>
<h1><a name="Development"></a>Development <a href="#Plan"></a></h1>
<h2><a name="Mailing-lists"></a>Mailing-lists</h2>
<h2><a name="Mailing-lists"></a>Mailing-lists</h2>
<p>EO is an open development effort; that is why we have
<p>EO is an open development effort; that is why we have
created mailing lists to discuss future developments, solve technical
problems, announce releases, publish patches, and discuss evolutionary
computation in general. Browse the archives or join the <a
href="http://sourceforge.net/mail/?group_id=9775">EO mailing lists</a>.</p>
href="http://sourceforge.net/mail/?group_id=9775">EO mailing lists</a>.</p>
<h2><a name="Get-involved"></a>Get involved</h2>
<h2><a name="Get-involved"></a>Get involved</h2>
<p>The following resources are available, thanks to sourceforge</p>
<ul>
<li> <a href="http://sourceforge.net/project/?group_id=9775">EO
SourceForge Project Page</a></li>
<li><a href="http://eodev.sourceforge.net/eo/doc/html/index.html">EO
automatic documentation page at SF</a><br>
</li>
<li><a href="http://eodev.sourceforge.net/eo/tutorial/html/eoTutorial.html">EO
tutorial page at SF</a><br>
</li>
<li> <a href="https://sourceforge.net/project/showfiles.php?group_id=9775">Releases</a></li>
<li> <a href="http://sourceforge.net/mail/?group_id=9775">Mailing Lists</a></li>
<li> <a href="http://sourceforge.net/forum/?group_id=9775">Message Forums</a></li>
<li> <a href="https://sourceforge.net/apps/trac/eodev/wiki/WikiStart">Bug Submission and Tracking</a></li>
<li> <a href="https://sourceforge.net/projects/eodev/support">Technical Support</a></li>
<li> <a href="https://sourceforge.net/scm/?type=git&group_id=9775">Code repository</a></li>
</ul>
<p>The following resources are available, thanks to sourceforge</p>
<ul>
<li> <a href="http://sourceforge.net/project/?group_id=9775">EO
SourceForge Project Page</a></li>
<li><a href="http://eodev.sourceforge.net/eo/doc/html/index.html">EO
automatic documentation page at SF</a><br/>
</li>
<li><a href="http://eodev.sourceforge.net/eo/tutorial/html/eoTutorial.html">EO
tutorial page at SF</a><br/>
</li>
<li> <a href="https://sourceforge.net/project/showfiles.php?group_id=9775">Releases</a></li>
<li> <a href="http://sourceforge.net/mail/?group_id=9775">Mailing Lists</a></li>
<li> <a href="http://sourceforge.net/forum/?group_id=9775">Message Forums</a></li>
<li> <a href="https://sourceforge.net/apps/trac/eodev/wiki/WikiStart">Bug Submission and Tracking</a></li>
<li> <a href="https://sourceforge.net/projects/eodev/support">Technical Support</a></li>
<li> <a href="https://sourceforge.net/scm/?type=git&group_id=9775">Code repository</a></li>
</ul>
<h2><a name="Related-software"></a>Related software</h2>
<h2><a name="Related-software"></a>Related software</h2>
<p>The softwares listed here are using EO, but they are not maintained by the EO team.
<p>The softwares listed here are using EO, but they are not maintained by the EO team.
They may not be free softwares or may even be outdated.</p>
<ul>
<li> <a href="http://paradiseo.gforge.inria.fr"
>ParadisEO</a> provides EO extensions for
the flexible design of <b>single solution-based metaheuristics</b>,
metaheuristics for <b>multi objective optimization</b> as well as <b>hybrid, parallel and distributed
metaheuristics</b>.</li>
<ul>
<li> <a href="http://paradiseo.gforge.inria.fr"
>ParadisEO</a> provides EO extensions for
the flexible design of <b>single solution-based metaheuristics</b>,
metaheuristics for <b>multi objective optimization</b> as well as <b>hybrid, parallel and distributed
metaheuristics</b>.</li>
<li> <a href="http://geneura.ugr.es/~jmerelo/DegaX/">DegaX</a>
is an ActiveX control which embeds EO 0.8.4.
</li>
<li> <a href="http://geneura.ugr.es/~jmerelo/DegaX/">DegaX</a>
is an ActiveX control which embeds EO 0.8.4.
</li>
<li><a href="https://lsiit.u-strasbg.fr/easea/index.php/EASEA_platform">EASEA</a> was a GUI that permits to build evolutionary algorithm with EO or the <a href="http://lancet.mit.edu/ga/">GAlib</a>.
It is now a platform that allows program evolutionary algorithms on massively parallel many-core architectures.</li>
<li><a href="https://lsiit.u-strasbg.fr/easea/index.php/EASEA_platform">EASEA</a> was a GUI that permits to build evolutionary algorithm with EO or the <a href="http://lancet.mit.edu/ga/">GAlib</a>.
It is now a platform that allows program evolutionary algorithms on massively parallel many-core architectures.</li>
<li><a href="https://gforge.inria.fr/projects/guide">GUIDE</a> is a GUI that allows the generation of evolutionary algorithms. It can use EO or <a href="http://cs.gmu.edu/~eclab/projects/ecj/">ECJ</a>.</li>
</ul>
<li><a href="https://gforge.inria.fr/projects/guide">GUIDE</a> is a GUI that allows the generation of evolutionary algorithms. It can use EO or <a href="http://cs.gmu.edu/~eclab/projects/ecj/">ECJ</a>.</li>
</ul>
<h2><a name="Authors"></a>Authors</h2>
<h2><a name="Authors"></a>Authors</h2>
<p>EO was started by the <a href="http://geneura.ugr.es/">Geneura
Team</a> at the University of Granada, headed by <a
href="http://geneura.ugr.es/%7Ejmerelo/">Juan Julián Merelo</a>. The <a
href="http://geneura.ugr.es/~jmerelo/EO.orig.html"
>original Web site</a> is also the only place where you
<p>EO was started by the <a href="http://geneura.ugr.es/">Geneura
Team</a> at the University of Granada, headed by <a
href="http://geneura.ugr.es/%7Ejmerelo/">Juan Julián Merelo</a>. The <a
href="http://geneura.ugr.es/~jmerelo/EO.orig.html"
>original Web site</a> is also the only place where you
will find old releases of EO (up to 0.8.7), but beware that it is not
compatible at all with the current version. </p>
<p>The developement team has then been reinforced by <a
href="http://www.cs.vu.nl/~mkeijzer">Maarten Keijzer</a>, the C++
<p>The developement team has then been reinforced by <a
href="http://www.cs.vu.nl/~mkeijzer">Maarten Keijzer</a>, the C++
wizzard, and <a href="http://www.lri.fr/%7Emarc">Marc Schoenauer</a>.
Later came <a href="http://www.liacs.nl/%7Ejeggermo/">Jeroen
Eggermont</a>, who, among other things, did a lot of work on GP,
Eggermont</a>, who, among other things, did a lot of work on GP,
INRIA Dolphin Team, <a
href="mailto:okoenig@users.sourceforge.net">Olivier König</a>, who did a
href="mailto:okoenig@users.sourceforge.net">Olivier König</a>, who did a
lot of useful additions and cleaning of the code and <a
href="http://www.jochen-kuepper.de">Jochen Küpper</a>, working on
href="http://www.jochen-kuepper.de">Jochen Küpper</a>, working on
infrastructure maintenance. </p>
<p>The project is now maintained by <a href="http://johann.dreo.fr">Johann Dréo</a>,
<p>The project is now maintained by <a href="http://johann.dreo.fr">Johann Dréo</a>,
working on it with the help of <a href="http://caner.candan.fr">Caner Candan</a>.</p>
<h2><a name="Links"></a>Links</h2>
<h2><a name="Links"></a>Links</h2>
<ul>
<li><a href="http://coco.gforge.inria.fr/">COCO (COmparing Continuous Optimisers)</a>, a platform for systematic and sound comparisons of real-parameter global optimisers. COCO provides benchmark function testbeds and tools for processing and visualizing data generated by one or several optimizers.</li>
<li><a href="http://www.aip.de/~ast/EvolCompFAQ" >The Hitch-Hiker's Guide to Evolutionary Computation</a>, FAQ for <a href="news:comp.ai.genetic">comp.ai.genetic</a>.</li>
<li>Wikipedia entries on <a href="http://en.wikipedia.org/wiki/Evolutionary_algorithm">Evolutionary algorithms</a>.</li>
<li>Charles Darwin: <a href="http://en.wikipedia.org/wiki/The_Origin_of_Species" >The Origin of Species</a>.</li>
<ul>
<li><a href="http://coco.gforge.inria.fr/">COCO (COmparing Continuous Optimisers)</a>, a platform for systematic and sound comparisons of real-parameter global optimisers. COCO provides benchmark function testbeds and tools for processing and visualizing data generated by one or several optimizers.</li>
<li><a href="http://www.aip.de/~ast/EvolCompFAQ" >The Hitch-Hiker's Guide to Evolutionary Computation</a>, FAQ for <a href="news:comp.ai.genetic">comp.ai.genetic</a>.</li>
<li>Wikipedia entries on <a href="http://en.wikipedia.org/wiki/Evolutionary_algorithm">Evolutionary algorithms</a>.</li>
<li>Charles Darwin: <a href="http://en.wikipedia.org/wiki/The_Origin_of_Species" >The Origin of Species</a>.</li>
</ul>
</div> <!-- id=main -->
</div> <!-- id=main -->
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/eodev/" : "http://sourceforge.net/apps/piwik/eodev/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://sourceforge.net/apps/piwik/eodev/piwik.php?idsite=1" style="border:0" alt=""/></p></noscript>
<!-- End Piwik Tag -->
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/eodev/" : "http://sourceforge.net/apps/piwik/eodev/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://sourceforge.net/apps/piwik/eodev/piwik.php?idsite=1" style="border:0" alt=""/></p></noscript>
<!-- End Piwik Tag -->
</body>
</body>
</html>

View file

@ -1,14 +1,14 @@
/***************************************************************************
* *
* contented3 - An open source xhtml/css website template by Contented *
* Designs. You're free to modify it and use it for any purpose without *
* cost or obligation. We'd prefer that you leave the link to our website *
* in the footer but it's not required. *
* *
* If you have comments or questions, please contact us at *
* http://www.ContentedDesigns.com. Thanks! *
* *
***************************************************************************/
/****************************************************************************
* *
* contented3 - An open source xhtml/css website template by Contented *
* Designs. You're free to modify it and use it for any purpose without *
* cost or obligation. We'd prefer that you leave the link to our website *
* in the footer but it's not required. *
* *
* If you have comments or questions, please contact us at *
* http://www.ContentedDesigns.com. Thanks! *
* *
***************************************************************************/
* {
padding:0px;
@ -111,18 +111,18 @@ table {
}
a {
color: #3366CC;
/*background-color: #FFFFFF;*/
font-weight: normal;
text-decoration: none;
color: #3366CC;
/*background-color: #FFFFFF;*/
font-weight: normal;
text-decoration: none;
outline:none;
}
a:hover {
color: #0033CC;
/*background-color: #FFFFFF;*/
font-weight: normal;
text-decoration: underline;
color: #0033CC;
/*background-color: #FFFFFF;*/
font-weight: normal;
text-decoration: underline;
}
@ -133,12 +133,12 @@ a:hover {
}
#title {
color:#3366CC;
/*background-color:#FFFFFF;*/
font-size:3em;
font-weight:bold;
margin:0px 0px 10px 0px;
float:left;
color:#3366CC;
/*background-color:#FFFFFF;*/
font-size:3em;
font-weight:bold;
margin:0px 0px 10px 0px;
float:left;
}
#slogan {
@ -170,7 +170,7 @@ ul#menu {
margin: 0;
padding: 0;
list-style: none;
/*width:650px;*/
/*width:650px;*/
}
ul#menu li {
@ -201,7 +201,7 @@ ul#menu a.selected:visited { background: #3366CC; color: #FFFFFF; }
padding:1em;
margin:1em;
/*width:650px;
float:left;*/
float:left;*/
clear:left;
}
@ -217,16 +217,16 @@ ul#menu a.selected:visited { background: #3366CC; color: #FFFFFF; }
}
#foot a {
color:#3366CC;
background-color:#FFFFFF;
text-decoration: none;
color:#3366CC;
background-color:#FFFFFF;
text-decoration: none;
}
#foot a:hover {
color:#0033CC;
background-color:#FFFFFF;
font-weight: normal;
text-decoration: underline;
color:#0033CC;
background-color:#FFFFFF;
font-weight: normal;
text-decoration: underline;
}
#copyright {
@ -248,10 +248,10 @@ ul#menu a.selected:visited { background: #3366CC; color: #FFFFFF; }
font-weight:bold;
}
.table_form_label {
.table_form_label {
text-align:right;
padding-right:1em;
}
}
.table_form_submit {
text-align:center;