{"id":48590519,"url":"https://github.com/aghorui/lhf","last_synced_at":"2026-04-08T19:03:22.841Z","repository":{"id":301892030,"uuid":"1010590458","full_name":"aghorui/lhf","owner":"aghorui","description":"Multilevel data and operation deduplication mechanism (implementation in C++)","archived":false,"fork":false,"pushed_at":"2026-02-09T14:25:49.000Z","size":1573,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-09T18:40:03.059Z","etag":null,"topics":["big-data","cache","compilers","data-flow-analysis","data-structures","database"],"latest_commit_sha":null,"homepage":"https://aghorui.github.io/lhf/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aghorui.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-29T11:58:28.000Z","updated_at":"2026-02-09T13:58:16.000Z","dependencies_parsed_at":"2025-06-29T13:23:35.381Z","dependency_job_id":"470705a5-db2c-460a-b184-a755deee190e","html_url":"https://github.com/aghorui/lhf","commit_stats":null,"previous_names":["aghorui/lhf"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/aghorui/lhf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aghorui%2Flhf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aghorui%2Flhf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aghorui%2Flhf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aghorui%2Flhf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aghorui","download_url":"https://codeload.github.com/aghorui/lhf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aghorui%2Flhf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31569400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["big-data","cache","compilers","data-flow-analysis","data-structures","database"],"created_at":"2026-04-08T19:03:03.334Z","updated_at":"2026-04-08T19:03:22.817Z","avatar_url":"https://github.com/aghorui.png","language":"C++","readme":"# LatticeHashForest\n\nLatticeHashForest (LHF) is a data representation caching mechanism that is meant\nto facilitate aggressive caching of redundant data, and operations performed on\nsuch redundant data. LHF aims to reduce both the memory footprint as well as the\nCPU time used by an application for every operation performed on its data when\ncompared to naive storage and operations on it by reducing each unique instance\nof data to a unique integer identifier, and reducing the cost of performing\nany bulk operation on data as much as possible. It builds on the following\nassumptions for some given information system:\n\n1. Data is often repetitive.\n2. Data is often redundantly computed.\n3. Data is often sparse.\n4. There are (usually) set patterns and common input data used for the\n   computation of new data.\n\nLHF finds its main applications in the domain of compilers and code\noptimization, specifically in the field of data-flow analyses, such as Liveness\nAnalysis and Points-to Analysis.\n\nThe current LHF toolset consists of a C++ implementation of the mechanism, and\na Python script that generates an automatically set-up interface from a given\ninput description.\n\nLHF assigns a unique number to each unique set that is inserted or computed,\nwhich reduces operations, like checking for equality, to a simple integer\ncomparison. In order to prevent duplicate sets, a mapping from the set to the\nunique integer is stored in a hash table. The set's contents are hashed.\n\nLHF hashes operations like unions, intersections and differences as well,\nand stores the mapping for each operation (a pair of integers denoting the two\noperands, to the result, which is another integer) in a separate hash table,\nallowing for efficient access to already computed information. Other inferences\nfrom the operation, such as subset relations are also hashed in order to\npossibly speed up future operations.\n\nLHF is meant to be extended to fit the needs of a particular use case. The\nclass should be derived and more operations or facilities should be implemented\nas required if in case the default LHF class does not meet all needs.\n\nThis project is still in active development.\n\n## Building (Test Programs) and Installing\n\nYour system must have a compiler that supports C++11, have standard Unix/Linux\nbuild tools and a CMake version greater than 3.23.\n\nFirst create a directory called \"build\" in the project directory and go into it\n\n```\nmkdir build \u0026\u0026 cd build\n```\n\nRun CMake in this directory.\n\n```\ncmake ..\n```\n\nNow, run make to build the example programs.\n\n```\nmake\n```\n\nIf you would like to skip compiling the example programs, unset the following\nflag when invoking CMake:\n\n```\ncmake .. -DENABLE_EXAMPLES=NO\n```\n\nTo install the headers to your system, do the following. You may need elevated\nprivileges to do this.\n\n```\nmake install\n```\n\n## Testing\n\nLHF uses GoogleTest as its unit testing suit. To enable it in the LHF build,\npass another flag to the CMake configure command:\n\n```\ncmake .. -DENABLE_TESTS=YES\n```\n\nAnd then build as usual. Once done, the testing suite can be invoked with:\n\n```\nctest\n```\n\nIn the build directory.\n\n## Documentation\n\nPlease refer to the [Guide](./doc/guide.md) for detailed documentation with\nrespect to the structure and usage of LHF.\n\nAPI documentation can be generated using `gendoc.sh` in the project folder. You\nmust have Doxygen and the python package `json-schema-for-humans` installed in\nyour system.\n\n```\nbash gendoc.sh\n```\n\nAfter a successful invocation, the schema documentation for blueprint files\n(please see the guide) and API documentation for LHF itself will be available\nin `./doc_generated/schema` and `./doc_generated/doxygen` respectively.\n\n## License\n\nThis project is currently licensed under the BSD 3-clause license. See\n[LICENSE](./LICENSE) for more details.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faghorui%2Flhf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faghorui%2Flhf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faghorui%2Flhf/lists"}