25 int main(
int argc, 
char* argv[])
 
   37     JParser<> zap(
"Example program to find smallest distance between two points.");
 
   47   catch(
const exception &error) {
 
   48     FATAL(error.what() << endl);
 
   51   gRandom->SetSeed(seed);
 
   61   if (inputFile != 
"") {
 
   63     ifstream in(inputFile.c_str());
 
   65     for (
double x, y, z; in >> x >> y >> z; ) {
 
   66       buffer.push_back(JVector3D(x,y,z));
 
   73     NOTICE(
"Seed: " << gRandom->GetSeed() << endl);
 
   77       buffer.push_back(JVector3D(gRandom->Uniform(-1.0, +1.0),
 
   78                                  gRandom->Uniform(-1.0, +1.0),
 
   79                                  gRandom->Uniform(-1.0, +1.0)));
 
   86       for (const_iterator i = buffer.begin(); i != buffer.end(); ++i)
 
   87         out << setw(7) << i->getX() << 
' '  
   88             << setw(7) << i->getX() << 
' '  
   89             << setw(7) << i->getZ() << endl;
 
   95   if (buffer.size() < 2) {
 
   96     FATAL(
"Not enough points." << endl);
 
   99   for (const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
 
  100     DEBUG(i->getX() << 
' ' << i->getY() << 
' ' << i->getZ() << endl);
 
  105     JTimer timer(
"classic");
 
  109     double dmin = numeric_limits<double>::max();
 
  111     for (const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
 
  112       for (const_iterator j = i; ++j != buffer.end(); ) {
 
  114         const double d = i->getDistance(*j);
 
  124     cout << 
"Minimal distance " << 
SCIENTIFIC(12,5) << dmin << endl;
 
  129   JTimer timer(
"O(n log(n))");
 
  137   cout << 
"Minimal distance " << 
SCIENTIFIC(12,5) << dmin << endl;
 
Utility class to parse command line options. 
 
static const JSmallestDistance3D getSmallestDistance3D
Function object for smallest distance determination. 
 
I/O formatting auxiliaries. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
General purpose messaging. 
 
Utility class to parse command line options. 
 
Auxiliary data structure for floating point format specification. 
 
#define DEBUG(A)
Message macros. 
 
int main(int argc, char *argv[])