Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-10610

Optimise SpanSet components used by CModel

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: afw
    • Templates:
    • Story Points:
      7
    • Sprint:
      DRP S17-6
    • Team:
      Data Release Production

      Description

      SpanSet::intersectNot(SpanSet) uses nested for loops iterating over the two sets, O(N^2). It would be much more efficient (O(N)) to have a coordinated iteration (so long as the sets are sorted).
      SpanSet::intersectNot(Mask<T>, T) currently creates a new SpanSet from the mask, and then creates another SpanSet with the overlap. I wonder if it would be more efficient to iterate over the mask with the span and create only one SpanSet result.
      SpanSet::_runNormalize uses std::vector::erase, which is rarely a good idea.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                nlust Nate Lust
                Reporter:
                price Paul Price
                Reviewers:
                Pim Schellart [X] (Inactive)
                Watchers:
                Nate Lust, Paul Price, Pim Schellart [X] (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Summary Panel