Ejemplo n.º 1
0
void process () 
{
  // generate point set
  std::vector<typename K::Point_d>  p_points, q_points;
  p_points.reserve( 50);
  q_points.reserve( 50);
  {
    int d = 10;
    std::vector<double>  coords( d+1);
    int  i, j;
    double hom = 2.0;
    for ( i = 0; i < 50; ++i) {
      for (j=0; j<d; ++j) 
	coords[ j] = CGAL::get_default_random()( 0x100000);
      coords[d] = hom;
      p_points.push_back
	(typename K::Point_d(d, coords.begin(), coords.end()));
    }
    hom = 3.0;
    for ( i = 0; i < 50; ++i) {
      for (j=0; j<d; ++j) 
	coords[ j] = -CGAL::get_default_random()( 0x100000);
      coords[d] = hom;
      q_points.push_back
	(typename K::Point_d(d, coords.begin(), coords.end()));
    }
    
  // call test function
  CGAL::test_Polytope_distance_d( p_points.begin(), p_points.end(),
				  q_points.begin(), q_points.end(),
				  Traits(), 2);
  }
}
Ejemplo n.º 2
0
	NazoTable(Iterator first, Iterator last, const Traits &traits = Traits())
		: m_traits(traits)
		, m_table()
	{
		const int n = std::distance(first, last);
		const int b = 32 - __builtin_clz(n + 1);
		m_table.assign(b, std::vector<value_type>(n + 1));
		Iterator it = first;
		++it;
		for(int i = 1; i <= n; ++i, ++it){
			const int ctz = __builtin_ctz(i);
			backward_fill(it, ctz, i, i - (1 << ctz));
			forward_fill(it, ctz, i, std::min(n + 1, i + (1 << ctz)));
		}
	}
Ejemplo n.º 3
0
Archivo: test.hpp Proyecto: oakad/ucpf
NodeType *make_list(ValueGen &&g, Traits const &t = Traits())
{
	bool valid(false);
	auto v(g(valid));
	if (!valid)
		return nullptr;

	auto head(t.list_head(new NodeType(v)));
	auto tail(head);
	v = g(valid);
	while (valid) {
		tail = t.link_after(tail, new NodeType(v));
		v = g(valid);
	}

	return head;
}
Ejemplo n.º 4
0
void process () 
{
  // generate point set
  std::vector<typename K::Point_2>  points;
  points.reserve( 100);
  {
    double hom = 2.0;
    for ( int i = 0; i < 100; ++i) {
      points.push_back
	(typename K::Point_2
	 (CGAL::get_default_random()( 0x100000),
	  CGAL::get_default_random()( 0x100000),
	  hom));
    }
    
  // call test function
  CGAL::test_Min_annulus_d(points.begin(), points.end(), Traits(), 0);
  }
}
Ejemplo n.º 5
0
void process () 
{
  // generate point set
  std::vector<typename K::Point_d>  points;
  points.reserve( 100);
  {
    int d = 10;
    std::vector<double>  coords( d+1);
    int  i, j;
    double hom = 2.0;
    for ( i = 0; i < 100; ++i) {
      for (j=0; j<d; ++j) 
	coords[ j] = CGAL::default_random( 0x100000);
      coords[d] = hom;
      points.push_back
	(typename K::Point_d(d, coords.begin(), coords.end()));
    }
    
  // call test function
  CGAL::test_Min_annulus_d(points.begin(), points.end(), Traits(), 0);
  }
}
	/**
	 *  @brief デフォルトコンストラクタ
	 *
	 *  要素数0のリストとして初期化する。
	 *    - 時間計算量: \f$ O(1) \f$
	 *
	 *  @param[in] traits  処理内容を示すオブジェクト
	 */
	explicit LazyTreapList(const Traits &traits = Traits())
		: m_traits(traits)
		, m_root(nullptr)
	{ }