           SPELL=libcoyote
         VERSION=2.2.1
          SOURCE=${SPELL}-${VERSION}.tar.gz
SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION}
   SOURCE_URL[0]=http://www.coyotegulch.com/${SPELL}/${SOURCE}
     SOURCE_HASH=sha512:527ef26b4215fd53a0f7120f89e72b6656f05973effc74660a13658bd0dc825aea22704b5b5947e4be74c6544633d17f0cf8608f8aec69b322c766e32887be7e
        WEB_SITE=http://www.coyotegulch.com/libcoyote/
         ENTERED=20031218
      LICENSE[0]=http://www.coyotegulch.com/svfl.html
        KEYWORDS="libs"
           SHORT="A library of C++ tools"
cat << EOF
A library of C++ tools:
Beyond Assert: Validation Tools for Design by Contract

I don't use the assert macro in professional C++ code; instead, I
prefer something akin to Bertrand Meyer's Design by Contract, albeit
with a strong C++ flavor. Beyond Assert introduces an exception-based
validation systems I've developed for my own projects.

The Twisted Road to Randomness

Genetic algorithms, games, statistical tests, and simulations all rely on
"random" numbers. Unfortunately, the built-in "random number" function
is inadequate in algorithms where lots, and lots (and lots!) of random
values need to be generated. Even a simple genetic algorithm requires
thousands of random values -- and some of my application use billions of
random numbers in their calculations. In such circumstances, a random
number "generator" that produces repetitive or cyclical values is unlikely to
produce satisfactory results. This article presents concepts, requirements,
and algorithms for generating "random numbers", with a focus on linear
congruential and Mersenne Twister algorithms.

A Maze of Concepts

I began with an idea for an experiment: Use genetic algorithms to evolve
searching skills in software organisms; such research is applicable to many
applications, including web searching and data mining. I've puttered about
with several such algorithms, and wanted to move to a more complicated
environment. This article describes classes for creating, drawing, and
persisting 2D mazes in C++.
EOF
