#ifdef __BORLANDC__
#include <condefs.h>
#endif
#include <time.h>
#include <stdlib.h>
#include <iSeeML/fwdPaths>
int main()
{
const int nbConfig = 1000;
const double xSize = 50, ySize = 50;
const double minTurnRadius = 5;
const double minTurnDist = 5;
#ifdef __BORLANDC__
srand((unsigned int) time(NULL));
#else
srandom((unsigned int) time(NULL));
#endif
const int maxRnd = ~(01 << 31);
int i;
#ifdef __BORLANDC__
#define random rand
#endif
for(i = 0; i < nbConfig; i++) {
const double x = xSize * random() / maxRnd,
y = ySize * random() / maxRnd,
th = (2.0 * random() / maxRnd - 1) * M_PI;
int j, nbPaths, nbShort;
double minRatio, maxRatio, ratioSum, squareSum;
const double maxCurv = 1 / minTurnRadius;
const double maxCurvDeriv = maxCurv / minTurnDist;
double limDeflect, turnRadius, turnAngle;
limDeflect, turnRadius,
turnAngle);
for(i = 0, nbPaths = 0, nbShort = 0, minRatio = 2,
maxRatio = 1, ratioSum = 0, squareSum = 0;
i < nbConfig; i++)
for(j = 0; j < nbConfig; j++)
if (i != j) {
maxCurvDeriv, limDeflect,
turnRadius, turnAngle);
nbPaths++;
if (ratio <= 1.3) nbShort++;
if (ratio < minRatio) minRatio = ratio;
if (ratio > maxRatio) maxRatio = ratio;
ratioSum += ratio;
squareSum += ratio * ratio; }
const double mean = ratioSum / nbPaths,
variance = squareSum / nbPaths - mean * mean;
cout << "Mean of ratio on " << nbPaths << " computations: "
<< mean << "; std deviation: " << sqrt(variance)
<< endl;
cout << " minimum: " << minRatio << "; maximum: " << maxRatio
<< "; % under 1.3: " << (double)(nbShort) * 100 / nbPaths
<< endl;
#ifdef WIN32
system(pause);
#endif
return(0);
}