{"id":25827234,"url":"https://github.com/williamsdevaccount/libhhash","last_synced_at":"2025-02-28T15:55:43.511Z","repository":{"id":35436219,"uuid":"39702475","full_name":"williamsdevaccount/libhhash","owner":"williamsdevaccount","description":"Automatically exported from code.google.com/p/libhhash","archived":false,"fork":false,"pushed_at":"2015-07-25T20:52:31.000Z","size":156,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-16T12:48:57.906Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/williamsdevaccount.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-25T20:49:58.000Z","updated_at":"2024-04-16T12:48:57.907Z","dependencies_parsed_at":"2022-09-17T19:04:25.127Z","dependency_job_id":null,"html_url":"https://github.com/williamsdevaccount/libhhash","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamsdevaccount%2Flibhhash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamsdevaccount%2Flibhhash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamsdevaccount%2Flibhhash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamsdevaccount%2Flibhhash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/williamsdevaccount","download_url":"https://codeload.github.com/williamsdevaccount/libhhash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241176634,"owners_count":19922732,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-28T15:55:42.764Z","updated_at":"2025-02-28T15:55:43.505Z","avatar_url":"https://github.com/williamsdevaccount.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"HOPSCOTCH HASH TABLE IMPLMENTATION\n\nHash tables are very efficient for key value lookup in both speed and\nmemory usage. Hopscotch hash tables also provide memory locality and\ncache efficiency by using open addressing and a special methdod of\nlinear probing.\n\n\nIMPLEMENTATIOON NOTES\n\nThe neighbourhood of baskets is circular going back after the last\nelement to the first using modulo arithmetics. Whereever we use a\ndifference (x-y)%n, in order to keep modulo semantics using unsigned\nvariables we add n: (n+x-y)%n, which is basically a nop but guarantees\nthat the result of the subtraction remains positive.\n\nWe are using the following GCC builtin function to calculate an integer\nlogartihm in base 2:\n\n__builtin_clz, count-leading-zeros, returns the number of leading\n0-bits in x, starting at the most significant bit position. If x is 0,\nthe result is undefined.\n\n\nBUILDING\n\nThe code relies, besides the aforementioned builtins, on stdlib.h for the\nfunction malloc. The provided mkfile is written for Plan 9 mk which is\nprovided on other platforms by the Plan 9 Ports [2]. If Plan9port is\navailable to get the library compiled and, optionally installed, use\n'mk [install]'.\n\nThe environment variables needed to install are in mkconfig, which is\na Plan 9 RC script. The variable BASE referes to the base directory of\nthis library. If you use BASH shell, you can use mkconfig.sh instead.\n\n\nTESTING\n\nUnit tests can be found from the directory ut. The associated mkfile\nis contained within as is the documentation of them. The header\n9unit.h is our entire unit test library and is included here. The\nscript check runs executables and prints either \"pass\" or \"FAIL\" with\nobvious semantics depending on the return value of the executed test.\n\n\nDOCUMENTATION\n\nA Unix manual page is in the directory man. This also provides the\ndocumentation for the provided functions.\n\n\nCONTACT\n\nJani Lahtinen \u003cjani.lahtinen8@gmail.com\u003e\n\n\nREFERENCES\n\nHerlihy, Maurice and Shavit, Nir and Tzafrir, Moran, Hopscotch\nHashing. DISC '08: Proceedings of the 22nd international symposium on\nDistributed Computing. Arcachon, France:\nSpringer-Verlag. pp. 350--364, 2008.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamsdevaccount%2Flibhhash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilliamsdevaccount%2Flibhhash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamsdevaccount%2Flibhhash/lists"}