Skip to content
This repository has been archived by the owner on Dec 24, 2023. It is now read-only.

Choose a good hashing function #2

Open
ChristopherRabotin opened this issue Dec 1, 2021 · 3 comments
Open

Choose a good hashing function #2

ChristopherRabotin opened this issue Dec 1, 2021 · 3 comments
Labels
specification Related to the "how should this be done" question
Milestone

Comments

@ChristopherRabotin
Copy link
Member

Requirements:

  1. Relatively easy to compute
  2. Relatively low collision
  3. Allows using a String as an input: the idea is to earmark some celestial objects and frames as official (or built-in) and store that in the name. Further, new additions to the table will have their hashes automatically computed.
@ChristopherRabotin ChristopherRabotin added the specification Related to the "how should this be done" question label Dec 1, 2021
@ChristopherRabotin ChristopherRabotin added this to the Version 0.1 milestone Dec 1, 2021
@ChristopherRabotin
Copy link
Member Author

Might of relevance here: https://github.com/rurban/smhasher#readme

@ChristopherRabotin
Copy link
Member Author

@GregoireHENRY @pwnorbitals why not start with just a simple CRC32? High collision rate, but extremely easy to compute. To mitigate collision rate, we would add a string to the "official" objects, e.g. Latest JPL Earth-Moon for the Earth-Moon data from the DE440.bsp file (or whichever is the latest). We would specify the DE file source in the comments section in the metadata for each official release. We would also provide Earth-Moon in the hash map so that Earth-Moon be an alias

@pwnorbitals
Copy link

A CRC32 should be fine, especially since the embedded targets usually have hardware acceleration for it. We could have a field specifying the hash type if we wanted to add different hashing functions later for specific use cases

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
specification Related to the "how should this be done" question
Projects
None yet
Development

No branches or pull requests

2 participants