libevocosm Namespace Reference
A toolkit and framework for implementing evolutionary algorithms.
More...
Classes
Functions
- template<typename Type> void validate_equals (const Type &object, const Type &constraint, const string &message=string())
- Validates that an object has a specific value.
- template<typename Type> void validate_not (const Type &object, const Type &constraint, const string &message=string())
- Validates that an object does not have a specific value.
- template<typename Type> void validate_less (const Type &object, const Type &constraint, const string &message=string())
- Validates that an object is less than constraint.
- template<typename Type> void validate_less_eq (const Type &object, const Type &constraint, const string &message=string())
- Validates that an object is less than or equal to constraint.
- template<typename Type> void validate_greater (const Type &object, const Type &constraint, const string &message=string())
- Validates that an object is greater than constraint.
- template<typename Type> void validate_greater_eq (const Type &object, const Type &constraint, const string &message=string())
- Validates that an object is greater than or equal to constraint.
- template<typename Type> void validate_range (const Type &object, const Type &low_bound, const Type &high_bound, const string &message=string())
- Validates that an object has a value in a specified range.
- template<typename Type, typename Predicate> void validate_with (const Type &object, const Predicate &constraint, const string &message=string())
- Validates an object with a given predicate.
- template<typename Type> void enforce_lower_limit (Type &object, const Type &low_value)
- Enforce a lower limit on the value of an object.
- template<typename Type> void enforce_upper_limit (Type &object, const Type &high_value)
- Enforce an upper limit on the value of an object.
- template<typename Type> void enforce_range (Type &object, const Type &low_value, const Type &high_value)
- Enforce an range limit on the value of an object.
- string build_location_string (const char *filename, long line_no)
- Utility function to create a location string.
Detailed Description
Evocosm is a set of classes that 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:
-
| filename | The name of a file, usually the Standard C __FILE__ macro |
| line_no | A line number in the file, usually the Standard C __LINE__ macro |
- See also:
- LIBEVOCOSM_LOCATION
template<typename Type>
void libevocosm::enforce_lower_limit |
( |
Type & |
object, |
|
|
const Type & |
low_value | |
|
) |
| | [inline] |
template<typename Type>
void libevocosm::enforce_range |
( |
Type & |
object, |
|
|
const Type & |
low_value, |
|
|
const Type & |
high_value | |
|
) |
| | [inline] |
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:
-
| object | Object to undergo enforcement |
| low_value | Lower limit on the value of object |
| high_value | Upper limit on the value of object |
template<typename Type>
void libevocosm::enforce_upper_limit |
( |
Type & |
object, |
|
|
const Type & |
high_value | |
|
) |
| | [inline] |
If object's value is greater than high_value, as per the > operator, object will be set equal to high_value.
- Parameters:
-
| object | Object to undergo enforcement |
| high_value | Upper limit on the value of object |
template<typename Type>
void libevocosm::validate_equals |
( |
const Type & |
object, |
|
|
const Type & |
constraint, |
|
|
const string & |
message = string() | |
|
) |
| | [inline] |
If value is not equal to constraint, as defined by the appropriate == operator, this function throws a validation_error.
- Parameters:
-
| object | Object to be tested against constraint |
| constraint | Expected value of object |
| message | Additional 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() | |
|
) |
| | [inline] |
If value is less than or equal to constraint (using the <= operator), this function throws a validation_error.
- Parameters:
-
| object | Object to be tested |
| constraint | Object must be > than this value |
| message | Additional 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() | |
|
) |
| | [inline] |
If value is less than or equal to constraint (using the <= operator), this function throws a validation_error.
- Parameters:
-
| object | Object to be tested |
| constraint | Object must be > than this value |
| message | Additional 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() | |
|
) |
| | [inline] |
If value is greater than or equal to constraint (using the >= operator), this function throws a validation_error.
- Parameters:
-
| object | Object to be tested |
| constraint | Object must be < than this value |
| message | Additional 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() | |
|
) |
| | [inline] |
If value is greater than or equal to constraint (using the >= operator), this function throws a validation_error.
- Parameters:
-
| object | Object to be tested |
| constraint | Object must be < than this value |
| message | Additional 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() | |
|
) |
| | [inline] |
If value equals the constraint, as defined by the appropriate == operator, this function throws a validation_error.
- Parameters:
-
| object | Object to be tested against constraint |
| constraint | Value that object should not equal |
| message | Additional 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() | |
|
) |
| | [inline] |
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:
-
| object | Object to be tested |
| low_bound | Low boundary (inclusive) on value of object |
| high_bound | High boundary (inclusive) on value of object |
| message | Additional 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() | |
|
) |
| | [inline] |
If predicate(object) is false -- indicating an invalid object in the context defined by predicate -- this function throws a validation_error.
- Parameters:
-
| object | Object to be tested against the predicate |
| constraint | A function or functor returning true for valid objects and false for an invalid object |
| message | Additional text to be included in a validation_error |