{"id":16572841,"url":"https://github.com/lemire/arraylayout","last_synced_at":"2026-03-08T11:38:49.870Z","repository":{"id":66054798,"uuid":"44337692","full_name":"lemire/arraylayout","owner":"lemire","description":"Pat Morin's arraylayout","archived":false,"fork":false,"pushed_at":"2015-10-15T18:38:24.000Z","size":528,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-16T03:14:32.368Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://arxiv.org/abs/1509.05053","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lemire.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-10-15T18:37:44.000Z","updated_at":"2022-05-15T20:44:46.000Z","dependencies_parsed_at":"2023-02-19T21:50:54.448Z","dependency_job_id":null,"html_url":"https://github.com/lemire/arraylayout","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/lemire%2Farraylayout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemire%2Farraylayout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemire%2Farraylayout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemire%2Farraylayout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lemire","download_url":"https://codeload.github.com/lemire/arraylayout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242041892,"owners_count":20062304,"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":"2024-10-11T21:28:42.160Z","updated_at":"2026-03-08T11:38:44.849Z","avatar_url":"https://github.com/lemire.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# arraylayout\nExperiments with memory layouts for binary search\n\nIf  you're curious, you can following this project's progress in\n[my notebook](http://nbviewer.ipython.org/github/patmorin/arraylayout/blob/master/src/arraylayouts.ipynb).\n\n## About\nThis project is about trying different memory layouts for searching in an array, with a focus on improving performance for the most common-case: When the input fits entirely in RAM. The layouts we try are:\n\n1. sorted: The usual sorted array on which we apply binary search\n2. eytzinger: The Eytzinger (or BFS) layout most commonly used implicit binary heaps\n3. btree: A (B+1)-ary variant of the Eytzinger layout\n4. veb: The van Emde Boas layout from the cache-oblivious literature\n\n## Quick start\nTo run an experiment on your own (linux) machine (with g++ installed):\n\n    cd src\n    make main\n    ./main uint32 uint32 100000000 10000000\n\nThis will test the cost of performing ten million searches in an array of one hundred million integers.  You'd better have at least 800MB of free RAM, which you can check with\n\n    free -h\n\n## Results\n\nA webpage with some collected results is being maintained here:\n\nhttp://cglab.ca/~morin/misc/arraylayout/\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemire%2Farraylayout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flemire%2Farraylayout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemire%2Farraylayout/lists"}