Skip to content

Triangulation_data_structure (dim d) speed enhancements #8842

@mglisse

Description

@mglisse

Building a triangulation (for instance Triangulation for points on a sphere in dim 5, where every insertion is outside the convex hull) spends a lot of time in TDS operations, even when the dimension is fixed at compile-time (for dynamic dimension, see #8044). This issue is here to list ideas to speed it up (the list may evolve).

  • Use TDS_full_cell_mirror_storage_policy by default (except maybe for dynamic dimension?) (mentioned in [[no_unique_address]] to compact Triangulation_ds_full_cell #8045)
  • Replace queue<T> by stack<T>, or even stack<T,vector<T>> (most places don't seem to care about the order)
  • clear_visited_marks: instead of walking through the graph again, maybe we could store the cells in a vector when we mark them, so it is easy to clear them all afterwards?
  • we spend quite a bit of time testing if vertices are infinite, try to avoid calling is_infinite on a cell when we could find out by testing one specific vertex (Outside_convex_hull_traversal_predicate?). Investigate if we could force the infinite vertex to be always in first position in the vertices of a cell, to limit the required tests. (mentioned in Use 'if' rather than % #8027)
  • insert_in_tagged_hole: we spend a lot of time around while (!is_boundary_facet(rot)) and rotate_rotor. A comment says this is the "easy" way, so maybe there is a faster way?

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions