31int main(
int argc,
char* argv[])
43 JParser<> zap(
"Example program to find smallest distance between two points.");
53 catch(
const exception &error) {
54 FATAL(error.what() << endl);
57 gRandom->SetSeed(seed);
67 if (inputFile !=
"") {
69 ifstream in(inputFile.c_str());
71 for (
double x, y; in >> x >> y; ) {
91 for (const_iterator i = buffer.begin(); i != buffer.end(); ++i)
92 out <<
setw(7) << i->getX() <<
' '
99 if (buffer.size() < 2) {
103 for (const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
104 DEBUG(i->getX() <<
' ' << i->getY() <<
endl);
115 for (const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
116 for (const_iterator j = i; ++j != buffer.end(); ) {
118 const double d = i->getDistance(*j);
133 JTimer timer(
"O(n log(n))");
137 const double dmin = getSmallestDistance2D(buffer.begin(), buffer.end());
148 <<
"(" <<
FIXED(7,5) << result.first ->getX() <<
"," <<
FIXED(7,5) << result.first ->getY() <<
")" <<
' '
149 <<
"(" <<
FIXED(7,5) << result.second->getX() <<
"," <<
FIXED(7,5) << result.second->getY() <<
")" <<
endl;
150 cout <<
"Distance " <<
SCIENTIFIC(12,5) << result.first->getDistance(*result.second) <<
endl;
155 TCanvas cv(
"cv",
"", 400, 400);
157 cv.SetFillStyle(4000);
171 for (const_iterator i = buffer.begin(); i != buffer.end(); ++i, ++N) {
190 g.SetMarkerStyle(20);
192 g.SetMarkerSize(0.7);
195 TMarker m1(result.first ->getX(), result.first ->getY(), 20);
196 TMarker m2(result.second->getX(), result.second->getY(), 20);
201 m1.SetMarkerSize(0.7);
202 m2.SetMarkerSize(0.7);