$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r80487 - in trunk: boost/numeric/ublas libs/numeric/ublas/test
From: guwi17_at_[hidden]
Date: 2012-09-10 17:38:12
Author: guwi17
Date: 2012-09-10 17:38:11 EDT (Mon, 10 Sep 2012)
New Revision: 80487
URL: http://svn.boost.org/trac/boost/changeset/80487
Log:
* boost/numeric/ublas/matrix_sparse.hpp: see #7363, add new define BOOST_UBLAS_COO_ALWAYS_DO_FULL_SORT in order to force a full sort instead of partial sort + inplace merge
* libs/numeric/ublas/test/Jamfile.v2: add test to see effect of new define
Text files modified: 
   trunk/boost/numeric/ublas/matrix_sparse.hpp |     6 +++++-                                  
   trunk/libs/numeric/ublas/test/Jamfile.v2    |     7 +++++++                                 
   2 files changed, 12 insertions(+), 1 deletions(-)
Modified: trunk/boost/numeric/ublas/matrix_sparse.hpp
==============================================================================
--- trunk/boost/numeric/ublas/matrix_sparse.hpp	(original)
+++ trunk/boost/numeric/ublas/matrix_sparse.hpp	2012-09-10 17:38:11 EDT (Mon, 10 Sep 2012)
@@ -4397,11 +4397,15 @@
             if (! sorted_ && filled_ > 0) {
                 typedef index_triple_array<index_array_type, index_array_type, value_array_type> array_triple;
                 array_triple ita (filled_, index1_data_, index2_data_, value_data_);
+#ifndef BOOST_UBLAS_COO_ALWAYS_DO_FULL_SORT
                 const typename array_triple::iterator iunsorted = ita.begin () + sorted_filled_;
                 // sort new elements and merge
                 std::sort (iunsorted, ita.end ());
                 std::inplace_merge (ita.begin (), iunsorted, ita.end ());
-                
+#else
+                const typename array_triple::iterator iunsorted = ita.begin ();
+                std::sort (iunsorted, ita.end ());
+#endif                
                 // sum duplicates with += and remove
                 array_size_type filled = 0;
                 for (array_size_type i = 1; i < filled_; ++ i) {
Modified: trunk/libs/numeric/ublas/test/Jamfile.v2
==============================================================================
--- trunk/libs/numeric/ublas/test/Jamfile.v2	(original)
+++ trunk/libs/numeric/ublas/test/Jamfile.v2	2012-09-10 17:38:11 EDT (Mon, 10 Sep 2012)
@@ -152,6 +152,13 @@
       ]
       [ run test_coordinate_matrix_sort.cpp
       ]
+      [ run test_coordinate_matrix_sort.cpp
+       :
+       :
+       : <define>BOOST_UBLAS_COO_ALWAYS_DO_FULL_SORT
+       : test_coordinate_matrix_always_do_full_sort
+       :
+      ]
       [ run test_complex_norms.cpp
       ]
           [ run test_assignment.cpp