summaryrefslogtreecommitdiff
path: root/trunk/TAO/orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/compare_histo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/TAO/orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/compare_histo.cpp')
-rw-r--r--trunk/TAO/orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/compare_histo.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/trunk/TAO/orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/compare_histo.cpp b/trunk/TAO/orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/compare_histo.cpp
new file mode 100644
index 00000000000..d8ebf631bdc
--- /dev/null
+++ b/trunk/TAO/orbsvcs/performance-tests/RTEvent/Colocated_Roundtrip/compare_histo.cpp
@@ -0,0 +1,71 @@
+/**
+ * @file compare_histo.cpp
+ *
+ * $Id$
+ *
+ */
+
+#include <utility>
+#include <iostream>
+#include <fstream>
+#include <algorithm>
+#include <iterator>
+#include <map>
+
+typedef std::map<long,double> Vector;
+typedef std::pair<long,double> Element;
+
+std::ostream &
+operator<< (std::ostream &os,
+ const Vector::value_type &p)
+{
+ return os << p.first << " " << p.second;
+}
+
+
+void
+load_file (Vector &vector,
+ const char *filename)
+{
+ std::ifstream is (filename);
+ if (!is)
+ throw "Cannot open file";
+
+ while (is && !is.eof ())
+ {
+ long i; double v;
+ is >> i >> v;
+ Vector::value_type e (i, v);
+ vector.insert (e);
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ Vector X;
+ load_file (X, argv[1]);
+ Vector Y;
+ load_file (Y, argv[2]);
+
+ Vector Z;
+ for (Vector::iterator i = X.begin (); i != X.end (); ++i) {
+ for (Vector::iterator j = Y.begin (); j != Y.end (); ++j) {
+ long ki = (*i).first - (*j).first;
+ double p = (*i).second * (*j).second;
+
+ Vector::iterator k = Z.find (ki);
+ if (k == Z.end ())
+ Z.insert (Element (ki, p));
+ else
+ Z[ki] += p;
+ }
+ }
+
+ for (Vector::iterator i = Z.begin (); i != Z.end (); ++i)
+ {
+ std::cout << (*i) << "\n";
+ }
+
+ return 0;
+}