mirror of https://github.com/CGAL/cgal
Dependency inversion in segment_tree.h
This commit is contained in:
parent
77e5d1d26f
commit
708e3d63b4
|
|
@ -207,24 +207,19 @@ median_of_three( RandomAccessIter a, RandomAccessIter b, RandomAccessIter c,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template< class RandomAccessIter, class Predicate_traits >
|
template< class RandomAccessIter, class Predicate_traits, class Generator>
|
||||||
class Iterative_radon {
|
class Iterative_radon {
|
||||||
|
|
||||||
RandomAccessIter begin;
|
RandomAccessIter begin;
|
||||||
std::ptrdiff_t size;
|
|
||||||
Predicate_traits traits;
|
Predicate_traits traits;
|
||||||
int dim;
|
int dim;
|
||||||
|
Generator& generator;
|
||||||
boost::rand48 rng;
|
|
||||||
boost::uniform_int<std::ptrdiff_t> dist;
|
|
||||||
boost::variate_generator<boost::rand48&, boost::uniform_int<std::ptrdiff_t> > generator;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Iterative_radon( RandomAccessIter begin, RandomAccessIter end,
|
Iterative_radon( const RandomAccessIter& begin_, const Predicate_traits& traits_,
|
||||||
Predicate_traits traits, int dim, int /*num_levels*/ )
|
int dim_, Generator& generator_)
|
||||||
: begin(begin), size(end-begin), traits(traits), dim(dim),
|
: begin(begin_), traits(traits_), dim(dim_), generator(generator_)
|
||||||
rng(), dist(0,size-1), generator(rng,dist)
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
RandomAccessIter
|
RandomAccessIter
|
||||||
|
|
@ -247,7 +242,10 @@ RandomAccessIter
|
||||||
iterative_radon( RandomAccessIter begin, RandomAccessIter end,
|
iterative_radon( RandomAccessIter begin, RandomAccessIter end,
|
||||||
Predicate_traits traits, int dim, int num_levels )
|
Predicate_traits traits, int dim, int num_levels )
|
||||||
{
|
{
|
||||||
Iterative_radon<RandomAccessIter, Predicate_traits> IR(begin,end,traits,dim,num_levels);
|
typedef typename boost::variate_generator<boost::rand48&, boost::uniform_int<std::ptrdiff_t> > Generator;
|
||||||
|
boost::rand48 rng;
|
||||||
|
Generator generator(rng, boost::uniform_int<std::ptrdiff_t>(0, (end-begin)-1));
|
||||||
|
Iterative_radon<RandomAccessIter, Predicate_traits, Generator> IR(begin, traits, dim, generator);
|
||||||
return IR(num_levels);
|
return IR(num_levels);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue