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

Make some afw types hashable

    XMLWordPrintable

    Details

    • Story Points:
      9
    • Sprint:
      AP F18-4, AP F18-5, AP F18-6
    • Team:
      Alert Production

      Description

      The C++11 containers unordered_set and unordered_map only work with hashable types, a concept that was itself added in C++11. Most afw value types were implemented before we adopted C++11, and therefore do not have a specialization of std::hash. Implementing std::hash will also make it easier to implement DM-7621, as the C++11 requirements for hash are stricter than the Python requirements.

      In most cases, hash can be quickly implemented by adopting a modified version of the algorithm from Effective Java, Item 9; the only difference between the C++ requirements and the Java ones is that hash functions are implied to be strictly deterministic before C++14, but the EffJ algorithm meets that criterion if the hash for all member variables does.

      The classes covered by this ticket are a subset (possibly taken from DM-9936) of the following types:

      • afw::cameraGeom::CameraPoint
      • afw::cameraGeom::CameraSys
      • afw::cameraGeom::CameraSysPrefix
      • afw::cameraGeom::Orientation
      • afw::coord::Coord and its subclasses
      • afw::coord::Observatory
      • afw::coord::Weather
      • afw::detection::Threshold
      • afw::geom::Angle
      • afw::geom::AngleUnit
      • afw::geom::Box
      • afw::geom::CoordinateBase and its subclasses
      • afw::geom::CoordinateExpr
      • afw::geom::Span
      • afw::geom::SpherePoint
      • afw::geom::polygon::Polygon
      • afw::image::Calib
      • afw::image::Color
      • afw::image::DefectBase
      • afw::image::Filter
      • afw::image::FilterProperty
      • afw::math::FitResults
      • afw::math::Function and its subclasses
      • afw::math::MaskedVector
      • afw::math::Statistics
      • afw::table::BaseRecord and its subclasses
      • afw::table::ConstFunctorKey
      • afw::table::FieldBase and its subclasses
      • afw::table::InputFunctorKey and its subclasses
      • afw::table::KeyBase and its subclasses
      • afw::table::Match
      • afw::table::OutputFunctorKey and its subclasses
      • afw::table::ReferenceFunctorKey
      • afw::table::SchemaItem
      • afw::table::io::Persistable
      • afw::table::io::PersistableFacade

        Attachments

          Issue Links

            Activity

            krzys Krzysztof Findeisen created issue -
            krzys Krzysztof Findeisen made changes -
            Field Original Value New Value
            Epic Link DM-9788 [ 31141 ]
            krzys Krzysztof Findeisen made changes -
            Link This issue relates to DM-7621 [ DM-7621 ]
            krzys Krzysztof Findeisen made changes -
            Assignee Krzysztof Findeisen [ krzys ]
            krzys Krzysztof Findeisen made changes -
            Story Points 3 9
            krzys Krzysztof Findeisen made changes -
            Rank Ranked higher
            krzys Krzysztof Findeisen made changes -
            Rank Ranked higher
            krzys Krzysztof Findeisen made changes -
            Rank Ranked lower
            krzys Krzysztof Findeisen made changes -
            Component/s geom [ 10759 ]
            krzys Krzysztof Findeisen made changes -
            Risk Score 0
            krzys Krzysztof Findeisen made changes -
            Sprint AP F18-4 [ 749 ]
            krzys Krzysztof Findeisen made changes -
            Rank Ranked higher
            krzys Krzysztof Findeisen made changes -
            Status To Do [ 10001 ] In Progress [ 3 ]
            swinbank John Swinbank made changes -
            Sprint AP F18-4 [ 749 ] AP F18-4, AP F18-5 [ 749, 750 ]
            krzys Krzysztof Findeisen made changes -
            Reviewers Jim Bosch [ jbosch ]
            Status In Progress [ 3 ] In Review [ 10004 ]
            jbosch Jim Bosch made changes -
            Status In Review [ 10004 ] Reviewed [ 10101 ]
            swinbank John Swinbank made changes -
            Sprint AP F18-4, AP F18-5 [ 749, 750 ] AP F18-4, AP F18-5, AP F18-6 [ 749, 750, 751 ]
            krzys Krzysztof Findeisen made changes -
            Resolution Done [ 10000 ]
            Status Reviewed [ 10101 ] Done [ 10002 ]
            swinbank John Swinbank made changes -
            Epic Link DM-9788 [ 31141 ] DM-14447 [ 80385 ]

              People

              Assignee:
              krzys Krzysztof Findeisen
              Reporter:
              krzys Krzysztof Findeisen
              Reviewers:
              Jim Bosch
              Watchers:
              Jim Bosch, Krzysztof Findeisen
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  CI Builds

                  No builds found.