55 using namespace DGtal;
59 typedef Space::Point
Point;
61 std::size_t nb_ok [ 4 ] = { 0, 0, 0, 0 };
62 std::size_t nb_per_dim [ 4 ] = { 0, 0, 0, 0 };
63 std::size_t nb_vertices[ 4 ] = { 0, 0, 0, 0 };
64 std::size_t nb_facets [ 4 ] = { 0, 0, 0, 0 };
65 const std::size_t nb = 100000;
66 for ( std::size_t n = 0; n < nb; ++n )
69 std::vector< Point > X;
70 int m = 2 + rand() % 9;
71 for (
int i = 0; i < m; i++ )
72 X.push_back(
Point{ rand() % 8, rand() % 8, rand() % 8 } );
75 bool ok = hull.compute( X );
76 auto k = hull.affine_dimension;
78 nb_per_dim [ k ] += 1;
79 nb_vertices[ k ] += hull.positions.size();
80 nb_facets [ k ] += hull.facets.size();
81 nb_ok [ k ] += ok ? 1 : 0;
83 for (
auto k = 0; k < 4; k++ )
84 std::cout << std::setprecision(3) << ( 100.0 * nb_per_dim[ k ] ) / nb
85 <<
"% are " << k <<
"-dimensional"
86 <<
" #V=" <<
double( nb_vertices[ k ] ) / nb_per_dim[ k ]
87 <<
" #F=" << double( nb_facets[ k ] ) / nb_per_dim[ k ]
88 <<
" (" << nb_ok[ k ] <<
"/" << nb_per_dim[ k ] <<
")\n";