void Ellipsoid_rasterizer::check_node( const GsTLGridNode& loc ) {
  // check if loc belongs to the grid
  if ( !cursor_.check_triplet( loc[0], loc[1], loc[2] ) ) return;
  
  int id = cursor_.node_id( loc[0], loc[1], loc[2] );
  appli_assert( id >= 0 && id < int(already_visited_.size()) );

  if ( already_visited_[id] ) return;

  EuclideanVector vec = loc - center_;

  if( norm_( vec ) <= max_radius_ ) {
    // loc is inside the ellipsoid

    ellipsoid_nodes_.push_back( vec );
    s_.push( id );
    already_visited_[id] = true;
  }
}
double Distribution::sample() const
{
    return norm_(__rand);
}