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.
int main(int argc, char *argv[])
I/O formatting auxiliaries.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
General purpose messaging.
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Utility class to parse command line options.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Auxiliary data structure for floating point format specification.
#define DEBUG(A)
Message macros.