Boost logo

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