InfiniTAM icon indicating copy to clipboard operation
InfiniTAM copied to clipboard

TraversalEngine(s) 2.0

Open Algomorph opened this issue 4 years ago • 0 comments

Older subtasks (see if deprecated first):

  • [ ] All "All-true" flavor traversals for matching should follow a single structure and use a single generic: one that accepts 3 functors. One functor should be for matching two voxels, the other two are for treating unmatched voxels from either volume.

  • [ ] The "MatchingFlags" subtype of "all-true" traversal should, instead of employing separate generics or extra functors, wrap it's 3 argument functors into functors that check flags as predicate, returning "true" if the flags are not what the user passed in (making the voxels irrelevant).

  • [ ] Figure out if DRY violations in CUDA code for traversal (Position vs. the non-Position versions) can be avoided using templated generic function and lambda passing.

Newer subtasks:

  • [ ] Functors for comparison and reporting should be separated.
  • [ ] Functors for reporting should be based on (1) element type, (2) element position within the indexing structure, and (3) some abstract description of element position (i.e. absolute 2d or 3d position).
  • [ ] host device Lambdas should be used in CUDA calls.
  • [ ] templating should be used everywhere to allow for const and non-const container usages.
  • [ ] template on lambdas to include alternative functor inputs, i.e. position, instead of having separate functions.

Algomorph avatar May 31 '20 16:05 Algomorph