partial_sum.h: Include new.
2007-12-15 Benjamin Kosnik <bkoz@redhat.com> Paolo Carlini <pcarlini@suse.de> * include/parallel/partial_sum.h: Include new. Fix for DR 402. * include/parallel/multiway_merge.h:Fix for DR 402. * include/parallel/losertree.h: Same. * include/parallel/quicksort.h: Same. * include/parallel/random_shuffle.h: Same. * include/parallel/multiway_mergesort.h: Same. Co-Authored-By: Paolo Carlini <pcarlini@suse.de> From-SVN: r130956
This commit is contained in:
parent
ffe3dcd9d5
commit
58a6ef4b09
7 changed files with 21 additions and 10 deletions
|
@ -1,3 +1,13 @@
|
|||
2007-12-15 Benjamin Kosnik <bkoz@redhat.com>
|
||||
Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/parallel/partial_sum.h: Include new. Fix for DR 402.
|
||||
* include/parallel/multiway_merge.h:Fix for DR 402.
|
||||
* include/parallel/losertree.h: Same.
|
||||
* include/parallel/quicksort.h: Same.
|
||||
* include/parallel/random_shuffle.h: Same.
|
||||
* include/parallel/multiway_mergesort.h: Same.
|
||||
|
||||
2007-12-14 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
PR libstdc++/30127
|
||||
|
|
|
@ -265,11 +265,11 @@ template<typename T, typename Comparator = std::less<T> >
|
|||
{
|
||||
// Construct all keys, so we can easily deconstruct them.
|
||||
for (unsigned int i = 0; i < (2 * k); ++i)
|
||||
new(&(losers[i].key)) T(key);
|
||||
::new(&(losers[i].key)) T(key);
|
||||
first_insert = false;
|
||||
}
|
||||
else
|
||||
new(&(losers[pos].key)) T(key);
|
||||
::new(&(losers[pos].key)) T(key);
|
||||
|
||||
losers[pos].sup = sup;
|
||||
losers[pos].source = source;
|
||||
|
|
|
@ -800,7 +800,7 @@ template<
|
|||
{
|
||||
if (seqs_begin[pi].first != seqs_begin[pi].second)
|
||||
{
|
||||
new(&(fe[nrs])) value_type(*(seqs_begin[pi].first));
|
||||
::new(&(fe[nrs])) value_type(*(seqs_begin[pi].first));
|
||||
source[nrs] = pi;
|
||||
++nrs;
|
||||
total_length += _GLIBCXX_PARALLEL_LENGTH(seqs_begin[pi]);
|
||||
|
@ -1582,7 +1582,7 @@ template<
|
|||
_GLIBCXX_PARALLEL_LENGTH(seqs_begin[s]) * (double(i + 1) /
|
||||
(num_samples + 1)) * (double(length)
|
||||
/ total_length));
|
||||
new(&(samples[s * num_samples + i])) value_type(
|
||||
::new(&(samples[s * num_samples + i])) value_type(
|
||||
seqs_begin[s].first[sample_index]);
|
||||
}
|
||||
|
||||
|
|
|
@ -139,7 +139,7 @@ template<typename RandomAccessIterator, typename _DifferenceTp>
|
|||
num_samples + 1, es);
|
||||
|
||||
for (difference_type i = 0; i < num_samples; i++)
|
||||
new(&(sd->samples[iam * num_samples + i])) value_type(
|
||||
::new(&(sd->samples[iam * num_samples + i])) value_type(
|
||||
sd->source[sd->starts[iam] + es[i + 1]]);
|
||||
|
||||
delete[] es;
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#define _GLIBCXX_PARALLEL_PARTIAL_SUM_H 1
|
||||
|
||||
#include <omp.h>
|
||||
#include <new>
|
||||
#include <bits/stl_algobase.h>
|
||||
#include <parallel/parallel.h>
|
||||
#include <parallel/numericfwd.h>
|
||||
|
@ -155,11 +156,11 @@ template<
|
|||
*result = *begin;
|
||||
parallel_partial_sum_basecase(begin + 1, begin + borders[1],
|
||||
result + 1, bin_op, *begin);
|
||||
new(&(sums[iam])) value_type(*(result + borders[1] - 1));
|
||||
::new(&(sums[iam])) value_type(*(result + borders[1] - 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
new(&(sums[iam])) value_type(
|
||||
::new(&(sums[iam])) value_type(
|
||||
std::accumulate(begin + borders[iam] + 1,
|
||||
begin + borders[iam + 1],
|
||||
*(begin + borders[iam]),
|
||||
|
|
|
@ -80,7 +80,7 @@ namespace __gnu_parallel
|
|||
{
|
||||
const unsigned long long index = static_cast<unsigned long long>(s)
|
||||
* n / num_samples;
|
||||
new(&(samples[s])) value_type(begin[index]);
|
||||
::new(&(samples[s])) value_type(begin[index]);
|
||||
}
|
||||
|
||||
__gnu_sequential::sort(samples, samples + num_samples, comp);
|
||||
|
|
|
@ -213,7 +213,7 @@ template<typename RandomAccessIterator, typename RandomNumberGenerator>
|
|||
thread_index_t target_p = bin_proc[target_bin];
|
||||
|
||||
// Last column [d->num_threads] stays unchanged.
|
||||
new(&(temporaries[target_p][dist[target_bin + 1]++])) value_type(
|
||||
::new(&(temporaries[target_p][dist[target_bin + 1]++])) value_type(
|
||||
*(source + i + start));
|
||||
}
|
||||
|
||||
|
@ -478,7 +478,7 @@ template<typename RandomAccessIterator, typename RandomNumberGenerator>
|
|||
|
||||
// Distribute according to oracles.
|
||||
for (difference_type i = 0; i < n; ++i)
|
||||
new(&(target[(dist0[oracles[i]])++])) value_type(*(begin + i));
|
||||
::new(&(target[(dist0[oracles[i]])++])) value_type(*(begin + i));
|
||||
|
||||
for (int b = 0; b < num_bins; ++b)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue