Evocosm - A C++ Framework for Evolutionary Computing

Main Index

Created by Scott Robert Ladd at Coyote Gulch Productions.


Classes | Functions

libevocosm Namespace Reference

A toolkit and framework for implementing evolutionary algorithms. More...

Classes

Functions


Detailed Description

Evocosm classes abstract the fundamental components of an evolutionary algorithm. Evolutionary algorithms come in a variety of shapes and flavors, but at their core, they all share certain characteristics: populations that reproduce and mutate through a series of generations, producing future generations based on some measure of fitness. An amazing variety of algorithms can be built on that general framework, which lead me to construct a set of core classes as the basis for future applications.


Function Documentation

string libevocosm::build_location_string ( const char *  filename,
long  line_no 
) [inline]

This function formats a string from a given file name and line number. If C++ incorporates parts of C99, this function could be extended to support the __func__ macro that names the current function.

Parameters:
filenameThe name of a file, usually the Standard C __FILE__ macro
line_noA line number in the file, usually the Standard C __LINE__ macro
See also:
LIBEVOCOSM_LOCATION
template<typename Type >
void libevocosm::enforce_index ( Type &  object,
const Type &  array_length 
)

If object's value is greater than or equal to array_length, as per the >= operator, object will be set equal to array_length.

Parameters:
objectObject to undergo enforcement
array_lengthLength of array that object must address
template<typename Type >
void libevocosm::enforce_lower_limit ( Type &  object,
const Type &  low_value 
)

If object's value is less than low_value, as per the < operator, object will be set equal to low_value.

Parameters:
objectObject to undergo enforcement
low_valueLower limit on the value of object
template<typename Type >
void libevocosm::enforce_range ( Type &  object,
const Type &  low_value,
const Type &  high_value 
)

If object's value is less than low_value, as per the < operator, object will be set equal to low_value. If object's value is greater than high_value, as per the > operator, object will be set equal to high_value.

Parameters:
objectObject to undergo enforcement
low_valueLower limit on the value of object
high_valueUpper limit on the value of object
template<typename Type >
void libevocosm::enforce_upper_limit ( Type &  object,
const Type &  high_value 
)

If object's value is greater than high_value, as per the > operator, object will be set equal to high_value.

Parameters:
objectObject to undergo enforcement
high_valueUpper limit on the value of object
template<typename Type >
void libevocosm::validate_equals ( const Type &  object,
const Type &  constraint,
const string &  message = string() 
)

If value is not equal to constraint, as defined by the appropriate == operator, this function throws a validation_error.

Parameters:
objectObject to be tested against constraint
constraintExpected value of object
messageAdditional text to be included in a validation_error
template<typename Type >
void libevocosm::validate_greater ( const Type &  object,
const Type &  constraint,
const string &  message = string() 
)

If value is less than or equal to constraint (using the <= operator), this function throws a validation_error.

Parameters:
objectObject to be tested
constraintObject must be > than this value
messageAdditional text to be included in a validation_error
template<typename Type >
void libevocosm::validate_greater_eq ( const Type &  object,
const Type &  constraint,
const string &  message = string() 
)

If value is less than or equal to constraint (using the <= operator), this function throws a validation_error.

Parameters:
objectObject to be tested
constraintObject must be > than this value
messageAdditional text to be included in a validation_error
template<typename Type >
void libevocosm::validate_less ( const Type &  object,
const Type &  constraint,
const string &  message = string() 
)

If value is greater than or equal to constraint (using the >= operator), this function throws a validation_error.

Parameters:
objectObject to be tested
constraintObject must be < than this value
messageAdditional text to be included in a validation_error
template<typename Type >
void libevocosm::validate_less_eq ( const Type &  object,
const Type &  constraint,
const string &  message = string() 
)

If value is greater than or equal to constraint (using the >= operator), this function throws a validation_error.

Parameters:
objectObject to be tested
constraintObject must be < than this value
messageAdditional text to be included in a validation_error
template<typename Type >
void libevocosm::validate_not ( const Type &  object,
const Type &  constraint,
const string &  message = string() 
)

If value equals the constraint, as defined by the appropriate == operator, this function throws a validation_error.

Parameters:
objectObject to be tested against constraint
constraintValue that object should not equal
messageAdditional text to be included in a validation_error
template<typename Type >
void libevocosm::validate_range ( const Type &  object,
const Type &  low_bound,
const Type &  high_bound,
const string &  message = string() 
)

If value is less than low_bound (using the < operator) or greater than high_bound (using the > operator), this function throws a validation_error. The function does not verify that low_bound is less than high_bound.

Parameters:
objectObject to be tested
low_boundLow boundary (inclusive) on value of object
high_boundHigh boundary (inclusive) on value of object
messageAdditional text to be included in a validation_error
template<typename Type , typename Predicate >
void libevocosm::validate_with ( const Type &  object,
const Predicate &  constraint,
const string &  message = string() 
)

If predicate(object) is false -- indicating an invalid object in the context defined by predicate -- this function throws a validation_error.

Parameters:
objectObject to be tested against the predicate
constraintA function or functor returning true for valid objects and false for an invalid object
messageAdditional text to be included in a validation_error

© 2011 Scott Robert Ladd. All rights reserved.
HTML documentation generated by Dimitri van Heesch's excellent Doxygen tool.