|
Boost Users : |
Subject: [Boost-users] complexity problem using multi_index insert()
From: Andrew Kokkalis (andrewkokkalis_at_[hidden])
Date: 2010-02-27 14:39:11
Hello,
this is my third e-mail regarding multi_index containers.
I'm using them for the process of clustering a huge amount of data (posts
from an aple blog from the last 4-5 years)
I'm counting Euclidean distance between two clusters, which I store in a
multi_index container like the above
*typedef multi_index_container<
cluster_d,
indexed_by<
ordered_unique<
tag<cluster_pair>,
composite_key<
cluster_d,
BOOST_MULTI_INDEX_MEMBER(cluster_d, int, cluster1),
BOOST_MULTI_INDEX_MEMBER(cluster_d, int, cluster2)> >,
ordered_non_unique<
tag<cluster_distance>, BOOST_MULTI_INDEX_MEMBER(cluster_d,
float, distance)> >
> cluster_index;*
My problem is that I have to count 9500! (! = factorial) distances, and
store them in the multi_index container.
The process of counting distances is costing me 13minutes ( that is because
the dimension of each of the two vectors is nearly 1000 or more for which i
have to access STL's maps).
Another 9 minutes takes the insertion using "std::pair<iterator,bool>
insert(const value_type& x);".
I would like to know if there is another way to do faster insertion.
I've seen you use mailing list for much complicated problems, and I'm sorry
for being a noob.But since i chose to use boost I'd like to stick with that,
so I'm kindly asking for your help!
Thank you in advance
Andrew Kokkalis
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net