# cuCollections
**Repository Path**: mirrors_NVIDIA/cuCollections
## Basic Information
- **Project Name**: cuCollections
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-09-12
- **Last Updated**: 2026-08-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# cuCollections
`cuCollections` (`cuco`) is an open-source, header-only library of GPU-accelerated, concurrent data structures.
Similar to how [Thrust](https://github.com/thrust/thrust) and [CUB](https://github.com/thrust/cub) provide STL-like, GPU-accelerated algorithms and primitives, `cuCollections` provides STL-like concurrent data structures. `cuCollections` is not a one-to-one, drop-in replacement for STL data structures like `std::unordered_map`. Instead, it provides functionally similar data structures optimized for efficient use with GPUs.
## Development Status
`cuCollections` is still under active development. Users should expect breaking changes and refactoring to be common.
### Major Updates
__02/19/2026__ Removed legacy `static_map` implementation from `cuco::legacy` namespace
__02/03/2026__ Modernized `dynamic_map`: promoted `cuco::experimental::dynamic_map` to `cuco::dynamic_map` and removed the legacy implementation
__01/30/2026__ Removed legacy `static_multimap` implementation and promoted `cuco::experimental::static_multimap` to `cuco::static_multimap`
__10/08/2025__ Changed `cuda_allocator` to stream-ordered, requiring `cuda::stream_ref` parameter in `allocate`/`deallocate`.
__06/04/2025__ Removed CUDA 11 support
__11/01/2024__ Refined the term `window` as `bucket`
## Getting cuCollections
`cuCollections` is header-only and can be incorporated manually into your project by downloading the headers and placing them into your source tree.
### Adding `cuCollections` to a CMake Project
`cuCollections` is designed to make it easy to include within another CMake project.
The `CMakeLists.txt` exports a `cuco` target that can be linked[1](#link-footnote)
into a target to set up include directories, dependencies, and compile flags necessary to use `cuCollections` in your project.
We recommend using [CMake Package Manager (CPM)](https://github.com/TheLartians/CPM.cmake) to fetch `cuCollections` into your project.
With CPM, getting `cuCollections` is easy:
```cmake
cmake_minimum_required(VERSION 3.23.1 FATAL_ERROR)
include(path/to/CPM.cmake)
CPMAddPackage(
NAME cuco
GITHUB_REPOSITORY NVIDIA/cuCollections
GIT_TAG dev
OPTIONS
"BUILD_TESTS OFF"
"BUILD_BENCHMARKS OFF"
"BUILD_EXAMPLES OFF"
)
target_link_libraries(my_library cuco)
```
This will take care of downloading `cuCollections` from GitHub and making the headers available in a location that can be found by CMake. Linking against the `cuco` target will provide everything needed for `cuco` to be used by the `my_library` target.
1: `cuCollections` is header-only and therefore there is no binary component to "link" against. The linking terminology comes from CMake's `target_link_libraries` which is still used even for header-only library targets.
## Requirements
- NVCC 12.0 or newer
- C++17
- GPU Architecture: Volta or newer
- Pascal is partially supported. Any data structures that require blocking algorithms are not supported. See [libcu++](https://nvidia.github.io/libcudacxx/setup/requirements.html#device-architectures) documentation for more details.
## Dependencies
`cuCollections` depends on the following libraries:
- [CUDA C++ Core Libraries (CCCL)](https://github.com/NVIDIA/cccl)
No action is required from the user to satisfy these dependencies. `cuCollections`'s CMake script is configured to first search the system for these libraries, and if they are not found, to automatically fetch them from GitHub.
## Building cuCollections
Since `cuCollections` is header-only, there is nothing to build to use it.
To build the tests, benchmarks, and examples:
```bash
cd $CUCO_ROOT
mkdir -p build
cd build
cmake .. # configure
make # build
ctest --test-dir tests # run tests
```
Binaries will be built into:
- `build/tests/`
- `build/benchmarks/`
- `build/examples/`
### Build Script:
Alternatively, you can use the build script located at `ci/build.sh`. Calling this script with no arguments will trigger a full build which will be located at `build/local`.
```bash
cd $CUCO_ROOT
ci/build.sh # configure and build
ctest --test-dir build/local/tests # run tests
```
For a comprehensive list of all available options along with descriptions and examples, you can use the option `ci/build.sh -h`.
## Code Formatting
By default, `cuCollections` uses [`pre-commit.ci`](https://pre-commit.ci/) along with [`mirrors-clang-format`](https://github.com/pre-commit/mirrors-clang-format) to automatically format the C++/CUDA files in a pull request.
Users should enable the `Allow edits by maintainers` option to get auto-formatting to work.
### Pre-commit hook
Optionally, you may wish to setup a [`pre-commit`](https://pre-commit.com/) hook to automatically run `clang-format` when you make a git commit. This can be done by installing `pre-commit` via `conda` or `pip`:
```bash
conda install -c conda-forge pre_commit
```
```bash
pip install pre-commit
```
and then running:
```bash
pre-commit install
```
from the root of the `cuCollections` repository. Now code formatting will be run each time you commit changes.
You may also wish to manually format the code:
```bash
pre-commit run clang-format --all-files
```
### Caveats
`mirrors-clang-format` guarantees the correct version of `clang-format` and avoids version mismatches.
Users should **_NOT_** use `clang-format` directly on the command line to format the code.
## Documentation
[`Doxygen`](https://doxygen.nl/) is used to generate HTML pages from the C++/CUDA comments in the source code.
### The example
The following example covers most of the Doxygen block comment and tag styles
for documenting C++/CUDA code in `cuCollections`.
```c++
/**
* @file source_file.cpp
* @brief Description of source file contents
*
* Longer description of the source file contents.
*/
/**
* @brief Short, one sentence description of the class.
*
* Longer, more detailed description of the class.
*
* A detailed description must start after a blank line.
*
* @tparam T Short description of each template parameter
* @tparam U Short description of each template parameter
*/
template
class example_class {
void get_my_int(); ///< Simple members can be documented like this
void set_my_int( int value ); ///< Try to use descriptive member names
/**
* @brief Short, one sentence description of the member function.
*
* A more detailed description of what this function does and what
* its logic does.
*
* @param[in] first This parameter is an input parameter to the function
* @param[in,out] second This parameter is used both as an input and output
* @param[out] third This parameter is an output of the function
*
* @return The result of the complex function
*/
T complicated_function(int first, double* second, float* third)
{
// Do not use doxygen-style block comments
// for code logic documentation.
}
private:
int my_int; ///< An example private member variable
};
```
### Doxygen style check
`cuCollections` also uses Doxygen as a documentation linter. To check the Doxygen style locally, run
```bash
./ci/pre-commit/doxygen.sh
```
## Data Structures
We plan to add many GPU-accelerated, concurrent data structures to `cuCollections`. As of now, the two flagships are variants of hash tables.
### `static_set`
`cuco::static_set` is a fixed-size container that stores unique elements in no particular order. See the Doxygen documentation in `static_set.cuh` for more detailed information.
#### Examples:
- [Host-bulk APIs](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_set/host_bulk_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJx9Vg1vIjcQ_SvTPbWFHAsLUu4k8qGi5CKhnpLoEp0qlWpjvANrxWtz_qChiP_esZeFzTVXRSLBM_PmzZsZO9vEorVCK5uM_9wmokjGw14imVp6tsRknHBfsKSXWO0ND98HJzMFJ_Bwf_1HeiMkXunVxohl6R7xxY3h8BU6vAujbDRK6eNDD26_Tq-nE7i6-3J_92XyOL27hV9gcnMz_TydPH566MNESoiRFgxaNGss-sdUnwVHZTGdFqicWAg0Y5isGC8xHfWz4DeYqZl6JxSXvkA4557rgXXMCZ5bdH3uy8vvPQpGHsVg4RV3JAGTl227K423blDgmnLna-ROm375lovUS8GZfNto8ZtHxbH_fX6hrTPIqldBUlTC2eg5OKml_m1BMkNJ3vncy-ccX1i1kkgV1ea5EbiAa6yoic4whxa8peaBXoArEY4iwCwJCLMkosHkfmqjxBHnkVyDNR4DMxSv5AaEWmvO5sRgYXQVAWMwU0V08hYLWGgDhRZqCXqFRCHME0jxjPAkqGvGPYE2McsT18oxOqQTBQwCK-L5jJsjFeqkUA4qcuustSi6M7Wlc0oVMvyOG7ggWu4siAQwGMCnauU2YKV2NXGDqzBCyhG1-eYwTlR-OBQKJUmwZtKj7Ye6Le6_gS21lxREqqGkjlOQ9bzc53Elc0GBDShcowHNuTdEBTY6_l55BwVzLFQSefLQEnxZGcBAMacy84YCFZEOjzXc-moeIGstwOlAohYPi-BDkzoeW_EP5q6Fq3yVx4ALOM1-zbLsiHilKyKEwBntiSCB5iz0Ksp-mv0MUjPqHAtjHSKYp5xH4GDNaythZ_3TszdJHNEvaiNHITsHVoM2TrfNLcyq56FhcQb-Fq4EUlciI9CnBvVp39W69ekQmI0jGOWslWr0jKKHrSeCh4k_py5chgTbBrG39zk0ZPvf1ux2Laa0oiRiYFnv8aFF26wHwx6MetDv90DsQkC98-Pxq0ujJhFiDsJ0z9reDXQnrsEclzT43V69FKiK8HfWEm8ap4KUoxszMqFl0PVmMluGamOr6NKr5-eHsC3MB-IZ7oywybQvXroflzPXWl6SpyeMdkGNYiXyZxCLI7-wk_u9pwGkfYnX0pFmcyf8T_0xW2NqJfuKRiw29WYe8pVsTXcZoqrDgmvgvJ9YcouU82ikuW2qDAa96LxK1WTe0whvRpgvGnQRXyK32e4aOlRy5zV4F7b7rdB0NZyf0w304DmnF_cnuInZG879GWEkZ7CroQw6bxSEbaYTen85LTM9A-b4TCdqzflwdOqHZNYrV7_hSUr5Lvj798OPkDLDywtb5R8zSFPaakcfjirBIpWsmseHXYp5C5NzLumQLrfwPwEd0JKq52TXa-y0O6_sNBnJ7q_48y9b4Nyb))
- [Device-ref APIs for individual operations](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_set/device_ref_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJztV21v2zYQ_is3DducRpYdY90K1w4WNCtgbGiLJisG1INGUyeLi0xqIuXEC_Lfd0e9uk2L7cs-rQWSiHd87nj38O54H1i0Vhltg_n7-0AlwfwsDHKht5XYYjAPZJWIIAysqUrJ35Mnaw1P4OrN5a_jlyrHF6Y4lGqbuWu8c3PoPmEkT2A2nc3G9OO7EF69W12uLuDF67dvXr-9uF69fgVfw8XLl6ufVxfXP15FcJHn4HdaKNFiucck6k39rCRqi-NVgtqpVGE5h4tCyAzHs2jKepO1XusvlZZ5lSAsZCXNxDrhlIwtukhW2fmHGokgjWSSVlo6CoHIz4dyl5WVdZME92Q73qN0poyyx1Rys1VS5I8LLf5ZoZYYfWTfmAJLcnCP8bY0VWE_ViH3EkyPYJWxrkSx86qTJ3U6fkgpFdC4WmKKJZuM8U7sihzp8LXWplSYwiXuKN-OTKOFylKewaTgMoQ-Xg3W2CqyefFmZX0uPMpAqSjNnhQsCNBGj82tVnoLnX24zZTMQAoNGyRLmIAzoLSjY0sHt8plHpFNS6OdUBpLSEuz8zKlGy9ImGDUJXkyIQxiiCOz7AU5f4MHy8CGljJhM79eWfbGaN7fhRp8qCE1JSDRB5ywN2vyiOJE8aCsHQrUYodwhe4tpiF0CytdVG7FvhMRKPpxvM3NRuRxDHujEpCUbbOLh2mt3RzVUOxTeIzi_Q4posl8btVfGDvQJ2t9T0cFtmmJ4eT9FpbwMVuecyyAA2cd3hUliIrOL7cxI9GO2up83qw06l7JMVsIczuf859JXIjSKb4Di0Y7rIUZMS2JN7mRN-ejekXZeLg8OjlpkCn8331LJ_AOQU7-xkQy5s-Sgq6SS7WL7ijbflv9MYHeuR5AJXdw_G8Jo8GuBmKV3NHHKdTe-K-TI0TGJAbSUUcMuaDYgg8tcCqiJjkcgBCejDyFTtm4PxFr8a7T5fAoXvCw1g-M_q9JM1h_Xbl_yCZ_Ley_41D4AT7RvdLJ_8z6D5i1MSZvHKXztFUtIUO-C7Xp_BzrUvDiqAlGKTTFApZLmJKVOpXvacNvhDk08ZyJ-Q9oS8GAHe0YMc9aTtS18ic8MKh2zRmp0v64K9wBbG6oL4sSqbgX3J6J_AlsDl2rhnXAi-RHvg5gL_IKbQTXGYmbL7CZqfKEO4HFnLopbbKVzBo7LhOOG8EBNO6pCxgpq5JcgYPxv4nNkAgnuA14P3t2IrsYUyTj1gU6xPisP8OrardhyKZPEE3Jifr6Y8I6w8vT4-pqF_sNS3g6_WY6nfaIL8yOHKILJOgeKQrQRnB3M5r6z9PpVxR7kUAqeGTorkYPzNK4lhL2NHr6_FEnevRlLZSo8lHn1WSIczL0jZt7JTlhfTPkhgoU4hwFIa-DFpuyVSe3ZsD4DIT1DdlHlQMGbVR96HmuIje7GWBBuThnC_ctYtjodGm5_zhBDw8Df4nlFEru5fWk1CXqfhrCWQizEKIoBOXpXU9V8_nRWFY7wXu68NS3qdVuof19iza4JfqfhH5HhDrhv6eDEK7q8YLDkKqS4pWJPG2HpH7W8CMTOp-8vqE8YqL5oos-yN7scYMWKflJZ9Er17kRTVOAF79cXpCg7HPyicljsViczZ5REGfPzs_PR33voxFtVGepVvy8o-Gn3L6i2PP4yNMUVYIqd59OERfG87p6HSWpZUGG8oZrn6B3gDfF1UabW-hrKFWDJuQRvDLEGV80bhEKYZns_eDpBSLn-nngO9AVGYTf2xr8O9Thoqm-ywJskUZQkYdNyN2tATrbzvjK16KbzR_I16ulADf0fn7dVN1oy6ACEpX6na6dVlu7lndRmWNZfqBiDhQcTP1ZN5iJvep9u6b2CImhOqoNHa0oaENGqEB--gOjd7ZmBWt6PUOlNBfFMUvq43_AjWNWtEof8KInQlhnshUMEvkOS5Ue2gw0uaSzIB0Jdb2NVQeNktQ8aOyFVO1aBrHApKMjU63l5tryK47rEZVH5d-G7nD_0A0O1EqPwbmD1rXUUJoWC6qEV5WU9Ab-Al56663P0ZowAt9UGapEV5UauAfQCr2IJbUA6tJl_3AO9F7Ks9nT6ozEpnD1qzoYk72lPD09-x7GopTZ0u7i76cwHlMvcPTD0UkwGedit_FP7VxtBphSypwWKY_8SqcFKu36JngIWznl60hOty54-M3__xvZnH50))
- [One single storage for multiple sets](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_set/device_subsets_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJzNWQtv28gR_itzKnCQbT0sp7nkZFs4I04C4QInjd2iQBzwVuRK2poidbukbJ2g_95v9kFRj6RJcQUqQ5K53J2Z_eabx1KrhpHGqDwzjf6nVUMljX6v1UhFNinFRDb6jbhMRKPVMHmpY77uHt9ndEy3H67_2X6jUvkqny-1mkyLO_lU9Km6pGZ8RGenZ8_a-PipRTf_GF4Pr-jV-48f3n-8uhu-v6Ef6erNm-G74dXd69sOXaUp2ZWGtDRSL2TS2ah6p2KZGdkeJjIr1FhJ3aeruYinsn3WOeV53fvsPvuLyuK0TCRdxGWcd00hChVHRhaRluNOXE4Hu7MSgVlJV2gtloODt8ZlFhdASKRb94upLk3RTeQCpkULGRe57kwPTdEyKWN5-J6JRdbZsyrP51LD9IWMJjov52ZvikgnuVbFdLZtM-xN5HhrTOWm0FJsT8zKmdQqtkK7x86lv4zhTvL7MeUIqJlIPonZPJWAzs0ZaSXHdC1nYEwBE6Whaf5IRU6lkZRnkkZl-kBYSwaAgEN8L4YBhaRZmRYK0shLJ5ElhJ2Ocz2z4lWWqIVKSpGSRwBqaKGEN6ttFKyHK-nqw9BYeth1dznmF2qm_oAS2KaXMAe6WyTNXMZKpOmSHqcygxyRqmxCj8CO5NMcpALKlIhCEGblsdVpDQvWWg1TYaZscosEzbUAIWIYafK0tPNVtsjTBcCQQCtfsgZBBl9pAMSDga3SRGZ2b5jkgXBEv5sqCEixjcwCW0wlZVImdpGRc6EtiG5_O8byvqoBni8RGxTnWSEUtHWscKsFhKORJNxWEjFGI8aKbWF1KQfgo7QBnOVZO3_M-BYjXizncoP4L1kOW5zFjiKEf1lxUnGDTZmXep4jxYAa6bJDw4KnYS0QK2SWQD_oYSyFoH4GrlrxnhQiK-hRLHlOktsZQVnF_04V-6JkprFu-FVTPIkM84Ffl_TyHF_dbveCkIP-fo2PTYzRW44xysf0EjpA1cSwxilwhSYLpPPTno5RGT8gt1g9l9SrdNyUs5HULBFz41JrJC0yaQ7KO6kWdivZKdyTfEObFySfnu9JlqmcQaw1VSE16sIS4fdS6iXD4Zz6IJcRew5CgHiQ8qtcWn-GWXOdj_AdGeTTmfQLACxxFu33ETFS6MjPuvDItnjCwZdbhUQkEEIRh04UkuhFMGgwCMbcsTZmqs5TQ6_e0kSLrEwF3Lv8oopvflkVNs8468ntkZpuU3-SgiB80TEdULUcgTi8b4wdIcN2u26XcJvNBrVY9YkheMJfBp85JAPN3L0Kwladf4Nzp-fd4QgO-SdE8q4-jAed_JUJQFS3pd8PM87D0mpJeAVzt6vuxtzvxZorcL_vAgTURLxGrgz8l5JQHPt9-TuqS1TkGyJ-t7QD0fLdMnZxr6LhFpVz4yTn01uX82yROhjtkQcmiuoJcLNp293UeHMzcMIuadVr0bMWPW_Rixb93KIernsY6GGkh6Hez2tPrNezebH0SUxoZtKc-zSkcZvMQs9G9w0eRHCl9w1aiLSUhqsPbvsrTvdlmnARMkhiMQswZTx1aoqpKDjTL1H6FpzpYuRPbJmWuf2el4W1HXm_ym2bPUs2MuIbwQjssd073-pzXA8ztCjCmhq4SJF51ZxUhbHWjpFtx6oq-Joz-H4lce2OIQUpiD8v0TpMea2_3fxW11wrrFzmZ-SDx9CHnCulZr9z_bOe5DziZeajfwFB44tgFE3SfAR-R7TIVdDWDCQ7rsQiKa2YshznBm00MJxw_O41nhY5ok11ooK7REydIDTxbxLB4ELZ3B4Kg7vp4naETPcwaLoRZaL6cPPo6Jylw-1vuWF0W2qiiXj19oibQfm0o1wlT9DdtKuv1azzBMTsxTB5wsWJL6f26oi6oQmo70KLx5CaOBAv6bhZgX3CCpxNdq7Dr5p-WV_c0RJZIIkcYrk2TZf93JojrxJbc0SzHueaXaCjtTxjd_J-bSuKsucW8iJuo5qYQwoqUfoVofDj6-TkiFYu02xb1vGOZoe0LKE-qc9uH-v7bH2A_XzacosQfZb7vi8c52WW_CeCa2ndoUtQb5flDNRIGIhFdbN79KXHEluCy7bvt-IR4HyWM1wQv2LO_yg6xnDf_31s7JD_T2X_V7nP6Hwf83lFjfcfpUH7h_MA2n1Oo2oMv1vvsKu2ve0PBYF8FEVmiiKTwFUcB9qKsrZBSrO2TbpEhCAq_BQXL2svYome0_XzzWDXN4QWTP8bl9XtAN2y102sucYaDol10DqWXwdC0qMT5zrh7eyjgc4R3JfZBg8oK_KZit_r5o9upy06dkp_uNwL-C9t_gvYVTYNnTEeSvjEwPqUTlsH4pNbgCo4yckOPvAumWsAPW7eN27LOJbG_EBvrMVbwsIxpnMPGxtH3nkha7GnZjjBNkNQwsrNEShUargBqcJV3WQ7aGxXkJUzPkT9FIrN682RDtKXwBuZTVCixmNpj2oaXaI0tjFB_ByQ6Bbb6DLupMQtXdVp2X_5ZgQ_QftgdQYQ6-9nO--_7ryfb73X9RBGF6WSoNppdU-f6moHTceG2uSOb9GaMGgrHNyKekRgxjmdnKiKHHUx_IgDWTEaCWQp3-vHwhTb6kND7FLDTDzIyAmRTzj4FxeHmuj9rrhZB5opflSRnL--tHmQY8zM4K0isaGnPa0lJvStY_UEH87ss6l8hp5ShiW2SyvyQqSMQiAad72VQo-XP9dHxrLr9HyDZ21SDdQ6hvwJD21hXJd3clmfjo37xOGN_KR4V5_tiataVAeGG-lDe-CgtkdPUNv12cRuDEm5woBZvFvbWF4EeZGTdBlmdywRavi-ck_7Dj8AK407L3AS8PFbKTKbQ65l9ub46SHasaHl2cUnncifqcGE6mS3WreqUxA_AmVerXjg1l0Wq6xM03mh1-t1yA3DDPUa0P_hH8AFe2wR4IEJGgA0O-GMw6TYmI1GLCxv7p9FAkZ12lZUr_qPDZD-sWkNpq_xay9o9872tYHVNr1aW5vgBN88AsUqun1eewIGI7ezQAj2oGnl_FIhUHPJPipw0qr2rhm53gp298ScnyvVnrjX8KsKr6mamv0uvHbmshXRjl5cXPCx9-zlYDBobsR4HDoTWdROKm_UbgkLwrjef6sonq9lUerMZg5ssdFqcCpCu6A3v8U0skUc986elz3c5kfc9oeaRhsUuIxPTnovqC10PL00s-jFKbXbKE5F22bYRCbtVMxG9tebVI1qMuM4TjGI5pt_-MEAGvnsobFuhftw3tZ9IN5Yf7Z__waeANMA))
- [Using shared memory as storage](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_set/shared_memory_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJyVWItuGzcW_RViFl3IqSQ_sH1AkYXV2glgNJsUjrddoC5GFIeSuB6RKjkjRTX87z2Xj5mR7HRTGw6iIe-D5557eEePmZPOKaNdNvrlMVNFNjrvZyXXy5ovZTbKRF3wrJ85U1tBn09f3Wv2in388fq_g7eqlFdms7dquaru5KdqxJqPrCdO2MXZxT8G-OfbPnv_0831zZRdfbj98cPt9O7mw3v2dzZ9-_bm3c307s3HIZuWJfOWjlnppN3KYtiGeqeE1E4ObgqpK7VQ0o7YdMPFSg4uhme07_Re3-u_KS3KupBsLGphTl3FKyVyJ6uhqFeT4x0Fx47idFFrUQECXh7vMGYjLVxsZb60pt64YXBy-iqg8M8FEGBuxa0s8rVcG7vP5Se-3pQSAcOWuVVywa6xqF0FZ9Kx2gFbZhasWsG6yZEpHX2x4GvYnKuS8Alb5FRy59hHWd3KBXLJ82Vp5rzMc7Y1qoA9TMlZ_iCtlmWv2m-k5msZTUYjlAkQ5vScbXmpijw86SPY__shUOFhvan28L8fP3OOh97zhDWbkAwqhlRO7vUjxTg9ZT9LtlDWVYyXpRF0Lo9E9-zAxViCaWGsX53hULNhdHDngQsblGPCrDdWORgDVGEQb1mb2rF5LR4kCIWnrjSV60fz3UqJlQ--8_63UsCZ-h0OSsML58PkeSxszp6dE8DVMmDoHf_SRXLoV3snv76m0vmA77HSZztJyYEFtaj8mbioal42JzHz_yERtrBm7Zct3zFuLfdEYLyuTLP1skklPsmtXPiEegdFDemdvE554MCUBdcgG5gHpBr0ZSdydNqJi9UUs_e8tn32-NT-ReuT9vxUL1Fbi-3wbyUv2LwU5oGdsqu7aRvGw4MlIx4Q7nn_jUbVSrk8uMj9vl4nzI1WOFCJQjb4JcBqp_SSSh7jO-o22uSd-AxIJlTjoecXGuQ-7rVYWaOT75AjUl7zB-BVWxAx2XJSE7biDizXyq2CksVIDo56R9B4bqfyFwYSoU1FrJZspyowVe9Zq1Kq2g_bFlrxraQ8oC3agcxrpkhJ8ISnENFxteIVMt1sjEVP0CGST-KElmB_z4NCHcUd0gJHpK1mJ22BwhMiG-pDgFk5V7rIQ6GMdb2gEWFf55hvoNWp9GERFfBphEdFyDky0Qf8rLpEmuAjkgioRkYAg0CIyHbPbZxaLdje1GzHiX8GZEDvMbHMHZXTIKjXGM2Mln2_M6FKOymnDhUTqFtpSSyCjgOyBGafqaEc9uMpe2LZp0xDUi18w7gclz7DMlHxQ44RgYMliwkBipDtn3HtUIQSDLg9wWEV7iEk4rwwzElza10wvuSgQ2gcr8CkrHjkZs1ZPQ8FoK8SLBxE2oG-emB2miwj-ebcy3PouVmLw-yIlp0g87qCIyiyXkob3bf7IjfTjXA1_enN9G5E1EhCQ7VDcQ6CcZyrCREeoXQ4rQR8SHAugaUy9liSuiYgXaeOn2mAZNAp7lWCm4r4DG5PjwXrhc5vow3TB0-VE_bIcNXpatG7z97c3n64HbEf0AdfFV4ygidEzCLp2NO9fqIMYAIaKd2jMSFdxaG2P_g-woZDUbrPvM7fZyypPEHFm-mM-WsOH3-rFd3b8z3DkMgUTT9rWHhuDhtlJsA8HyxMKgxF28Ar-AyO8J___MvvPx4zkOAk1EF-2tgXRovHwflTYvnPqoBiou7HlzorakshN9agYsujCnvPYV4IqnDJzpPLq7b5mb-HGO14wT4pSrCN1v9GX67rNdP1eg6dSbNIun-S2lH3-1HwaA6K-AbB9t4Rcu71C1MPzZ-VWtMoZxWflzL5ihj6KWCsaBI4Pzs7mxDK5BCQyyACszZ94ojgmKpxw9AZYPB61vKkOzlefi5AwuzaN5RPOgLOHPRmHRIMDuNCHhYOHZew5jaPW8YR2X5cRbvyuqxy3LGrPImR58mkBR7SVLRZ0ATjIyxRxgD9hltcL5W0oPUcet5JjSbog3zaMZ3CfMmwjJ8OYl9oQS8lNOT428wJ8C5MOX_JHC81qMxvGC3zynhUvtD8hYJ8cWAvegifx5ne2L8SOYHsh7Vxpw8nk2fXF6lmIS11I1Wxc9dALiWkX8hQ6XacjbVvXx_QBiq0lN-5k_62iC0ZXp2oOXaWb0jyaJA86Eo_ljNOejhrqTE7YlCaycGiZphJzBqN0uq4w9kr4EASavBaTndpoxl0SqjmFgOmvx4stJzebELGTdd6KT04ZjvjKRp-aZLwszH4IdH3RWvbowY-8VckFLq2wbUG7Kzktr2D_QtG5PZLKtp9AWGXof6hvjTH5N3l8UuM-zMy9Dot9fjUuVzfcZxz1S1fmJwZFYNEMr11NNP-0ZvyuFuwyXg8PoeiXXw_QczDN6oX3mxfh1ur4Ne41YTsTHF--sIFnPWzKNe2_aYl01shzi--qc-xbDZV-BomG6B_L8XXX59_xwbcitWlW-ffnbHBAOhWA59GIYtByddz_91MqeYdn0KIEg8xndLXOniA1039kD310zrAPVgv5DZ7-tX__gGTrirD))
- [Using set as mapping table to handle large keys or indeterministic sentinels](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_set/mapping_table_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJy1WQtPG0kS_isln25jJ2ODDdlE5qFFyUaHLkpWCTmdBMg0M227lZlpp6cH8Fn89_uqemb8wCzsKQcCMzPVX72-qq4eFq1CF4WxedEani9aJmkN-1ErVfmkVBPdGrbiMlGtqFXY0sV8vfPyIqeX9PWP9__ufjCpfmdnc2cmU3-m7_yQmktqxx0a7A72u_j1a0Sf_nX6_vSE3n3-8sfnLydnp58_0S908uHD6cfTk7Pfv_boJE1JVhbkdKHdjU56S1UfTazzQndPE517MzbaDelkpuKp7g56uyy3c5Ff5H8zeZyWiabDuIztTuGVN_Go0L4Xl9PjTYlEQSLZUc6p-fHWR76cpXrtkZ-6svA7ib6BRaMbHXvrepvQxhbeaZXJ7Z2XIWS_jREuytRsZvLJyKvrVI_0ncqgAdaxSBC7dkaP6b3OkBTvlNcFTe0teUtloWmqiinBIVIFKUqt_V7OSMDIjslP8YEomlyllCivGtgrDshVWC7iBRVlPGUYeTQcLoN1BYyNuzD7CgtmM-s82Tyd0_7OW7qee03f9bwImTqbmoJSkxleY3NSzoBddK1jxaZvMcFpILGkt5mJwZ5sppzunuRJ9-utmlH73cnXjmDbmXaCWtAY1kEpGRDChVtt3PpRakSu6ESk8kQiMVUuuQUe5Vh5w6oqD4rKha44AHFR8TZcQmWPzizpXKJaO81aU-UmWpQXESCwdDZzFiwkOI4EGU5mBobWDqU2_l77qrxoYcMKO_ZiWKphVo_-YW_xh4vwEEAN6K0t0wQyKmFwRbkNiUYoYE2m8lhTomMwDdFNSg2pRsUUpUSuRLFkmmLwkenx0KpeQ5CTJDEcTJWm82hbrjiFyAKSlSSOm0Y-YfaEQEMstmlquJVw_dq0FApk2k9tskKPxjmnf5TGBVwn0cODG4PyUeA37M51CnDlkefExFIHZQ7hhIrUIoUmF901ywnFUsa-dBrZ4xjXGDcqRWhYddNYqnuCnqGcQVHKOQOwQfPCGhwmwfesR5-s11VsxSJhHgJQ8W4uwdiis8wTPcatBCqm6sagWYQ4xCpnrZUCrrFI8HUx07HhJNDtVAcrTD4rvThKfj4T3Ngy1e6E6on22mUmDzZAtUm2WALy1GFS3GbBIFAwWRJAzCqkHwE-YWqttCA4V-eUuRgowNYVjF6UXOdz5JKNWOtRuYBzDh2apXAitMCqawHtQdcayhrqSiK52qqII4xVYpbEJK4joQhM2NYCSfp7r4b8JiZedftXoYU-jFShxrppWiqOK65fMdh5t395xUIml0A3sO9AI5uJXUxnzgv3KJAcYn4uCVMIpeWHsLiiv1S2OMMrgtCK_ex70EB0rZj7iF_l7DJzvyG3OuSv2lDYQm5YyxRy4Gelm1nuyNz9enTqK14A0WsQVYwpZLNBEDM0DYFv2o2nWzVnmSTkrFam0gks9tOs12zEzaYXdrNvyF63roQmLgxVu-xvbeNtWOk5Xhmd0eeVaEgBVFq8hnaQE5sybuYKje4MO27oA5TNR0HJAuLNVfsMGiHyUqjRoSGN-I8F_7qnxT3LBttpaf27qY6_I-XjxspAOplFYqhoUoOoGNewMXC1wtrCyfCk1hXcTaeFsD7VYw9igBQF90RA6rt1SVdJhnHrEVGn0RFzeoGY6Be1BzLVbPgQFuzwx2hUTTejECt9N3N0bW1abcLWtTttUGZvMPJsb0T1BUzqhDWMI4FHOHdCAEGTlPZJhx1SalUFU4RSVRPTTxpJlU88pPF8kgyHE-0Pd4_bkspzWHTZoaOjRwWcCIRdf_m1Id1_Cq7_l-AGT8EN_hLc3lNwe2twB4wl3G7oL09x__7gqXKV7jQu87hu_qH3Pmizy_4km3Mg4U-r5dBYm2IOl8-p5hU2qxLWb-GwGLuVuJ95TBRdYdAZG4dpoaLwKoMfb7bP4qxY8D_kyRvZXGR4gjdiIxb6xroJ5t6crsTIqy35OON5oto1RejP83FjMVuIqjr0v4RlGNIlauJabDGuHB7SRev8osV_PHQ7LApCEW2V6j-UWiuJLUsGz1jymFF79drz3cs_tWsp2L98vmnLVYPnwu9VgpeXF8h9i0nAHOA8Z8rkbU5GHXdw9Wy6Pjg0s2J1asHkmtdnnHrY4BGS9_yZTtNA8JL_4IWcc0YOI90_gbfWZMTGw7IqoYhiHLYi2SWiVTHZ5w4TW2JSi2j_28fj44PK3tNMTbjfs1oRw_b1HzF4Wk7YFXmy6khmna7NxqbDYzuueKPNUGqFCeNkBb_cUB6ZiW8xsTBR4YKzPHXLQL9ypAj9QlhOU6lDOgppFtfC2f8QkTlebAZm0e-XEb1QL3Ckw877MCSLfi-iAX728LPfu7-P1gm0rfH_v5EHA0a-fhz5NRB_xc8b_Lz9qTb_BOSxSovnhOP-YCO1wrqjKsM9vmqHRhxe9QyHa-96JN-UhH0mrAmtualBhUPoRgWqPOwxcgOH66pqrprqJJ3bEgd2MepGB-rfTm1aH_6cyie6UsLFW7-6qN6bnHxt6kOPxyY2WjYDFQ5LVdHbXPeWFX0iZoa6ruypK1MOR3Jg3lo4WB4LGkoI3SIcnMM5aeWQxFhLHctBEhuLn48QnVEDe0TdfhXDlbww0mjmHR6HcPf4V7vTQ5esMiTSfNDk1rT-DmsRbug73gsPhQ-c2pE_XkjCX9LgPgrhvOYu8Hr375RalYBHnOZH-LdCREGvfVk89OpRDjdf9ZlkUXv69JKgNgW-ciN-d4BMHvaj5UQk9DxerF8vFdw_ytVi8xz9upnUN_IS1oxkzdEjRdIk_nixGxEMHKAAUX-h-Ph9bDjQt1fAetca-0Gb39-t3MS5tN3prLKjzM2PUgf9y6-nLWlz3jub1b-CNoIu4LB1GNcwYN3oEc4s7RWR2sYHMHmZrSXqKOwRiQEjUS3bMKJN3bWXGzMU8uTCW44wL7AqeUCMjlr0VY-o8zWsxwWSsbQtZhqYtHuADwE4oFevTGdl0P1SORzeZhGUM-LmK4cgHua_0PvOV3w4N5fLEZY_qqF3N0wurajFe7dJtVv-s6GV38Rxf_C67OOxnfnwn4hWFzE4il-96r-hrnLx9KjIRm92qdtFC_FdKepEJ91UZdfy74nUXK9gxnGc4ibaEr-OxA3sOvn31n1UP0cVrT0HZVr3l_L9X_fJZgs=))
### `static_map`
`cuco::static_map` is a fixed-size hash table using open addressing with linear probing by default. It supports switching to double hashing. See the Doxygen documentation in `static_map.cuh` for more detailed information.
#### Examples:
- [Host-bulk APIs](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_map/host_bulk_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJyNVo1u2zYQfpWbhq12K8tygKyAEwcz2gYwVrRBEwQD6kKhKToiIpEuSXnxDL_77kjJllMDKwLYMe__u-943EZWWCu1stH46zaSeTQexVHJ1GPNHkU0jnidsyiOrK4Np9_D13MFr-H25v3fg2tZind6tTHysXB34tmNYf8TerwPZ-lZOsCPP2L4dD97P5vCu89fbj5_md7NPn-C32F6fT37OJvefbhNYFqW4C0tGGGFWYs8OYT6KLlQVgxmuVBOLqUwY5iuGC_E4CxJSW84V3P1q1S8rHMBl7zmemgdc5JnFVslvC6uXmrkbCidMMxpc9WVuMLU1g1zscao2VpwVEiKUyrie83K0yKLMqG4OC11him71KZKfkirYu7YhFuX52J5dCa1dUaw6uiwlJV01vsbvg59-nOJPYICtbNFXT5l4plVq1IgHEG8MFIs4b2okAGYkxMWaoudB70EVwg4IAjziDzMI-8Npjcz6_vj_dyhKkn9MTCD9qrcgFRrzdkCM1gaXXmH3pip3CvVVuSAKECupXoEvaJmEBmhlE8CzZEHDrTxMZYSrbQCBlY4yu9JbA4p-PZL5aBiUvXWWub9udqiBIOQ77_EBgAm6NNdHE7vWVmL_SmdD4fwoVq5DdhSu1CKEStipHKY7GKzZycCQodSiRJBWZMnmxASVjS_wBa6LtEIcRQl0giNbM2LJo4rmCNMNqDEWhjQnNcGU4GN9t-r2kHOHKMaff6cmiSeVwYEpZghAFmbAoAvbzDy1YW6Xur7rA4WjXaTzae6WlASHtehV4UVk8aC01RBaIbISR0JOR5b-a_IXCeIqitKyaLj8_RVmqYH5-90hdVgRgxnViK6C0at9908T3-DUjMkAqNBIwtWY8yDY5JmQYq-0-T84mQSB--TIORClr19VsOun343N6J-zanbQET_R7oCm9t6w-YGLgTKDEaevvRlPaM9th3QWnw9N0Mp5HUCdCVhxvuJ8uyEfdZxo7Dv7fbHLu-OlXzA7anm7nadAvGiQOxpbsKV1A6PLyRQlVTD1TQeH917l0i8q6b5Hsc9oP2LrlHru9dRTRbiEYexH3ftE6FyOkqP7Y-Dev7uw4YUfzJwM4gvQzfHx8EDMxcI2Es86EbQDf-32zROEfntKB7hV5IksJWx3O32_Q161OGcjccVe0JOthd81q6YXtNur8N1TY163EsvO3S-2mK4rvbKaF4yWWVGuNqozG1W4jIQgUJTj-Iw81dXTRiAr80snmxIU-UETqL2DbKsaUjW8xXKPmxbxwAhDTidwZYifZXf2iD47-6itd31O5M387ERdlz9AUKPOg0Vjgcp0eYOGfa8QtzovYEuGRp3twgjrS5aKEvE9_-53dDMK59iWeP4GjdPyNJDinSAUQxnngo7TxqL3hBOZq3mktE936XRQzfAQ1v8EicS_cEDOc2czmjBIVgPuA2FVa8ciGdpXXxsjgowmZy80B9axMjRT89h13mr2Kn9Xhi53IRdRQhQc7rgYkDHC3_cbogO7Auty-ZyRuMmShZMJoETbWf8U6p3KpsXOTZ5nyRum7hcQu9lQGRwsxY0LtbLS7zib2vO8fn7C1z7iqi-xt8c_UQXsAvuGr7TQsMTfA5z3Gf4sDKHV3Ok1pyPzs7rEYr1yoUndTTAiBP-5s3oLQyY4cXEVtnbFAYDXGwOPxxWI_JByaqFf2eXctHxyTkv8RAfB_RExwPcU-op2sWtHAfwSI70jnbf_N9_4DIiEA==))
- [Device-ref APIs for individual operations](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_map/device_ref_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJzNWXtvGzcS_ypTFe1JsZ4G0gJ6GDWS5iBcLwkStzggDjbULmURXu3ukVzJqqDv3pnhch-yEsu9f84BIu2SnOdvXtS-ZaQxKk1Ma_xp31JRazzqtmKR3OXiTrbGrTCPRKvbMmmuQ3oevLhN4AV8fP_6P703Kpav0myn1d3K3sgHO4byEdphBy6Hl8Me_vdTF97-MX89v4ZX7z68f_fh-mb-7i38CNdv3sx_m1_f_PqxD9dxDHzSgJZG6o2M-hWr31QoEyN780gmVi2V1GO4zkS4kr3L_pD2DW6T2-R7lYRxHkmYhnmYDowVVoXBWmT9MF9dHe-IBO6IBss8CS2aQMRXJ9dtnsWysWRXOjd2EMkNihVsZGhT3V-d2iIfZJgT8SBLYxXuTu9SVmqBNAZ_qizwD6e3GvnfXCah7D9SZy1s80SIwkdy2XinUmO1FOvGy1itlTVMb_DC-feXJfoWCgW1XAbyQazRDGhHt77QSi7htVwjdCzKKw3kBiED6RLsyh8Fo5DB9fu5gWWqQSWR2qgoFzGkGWlJwINY3UtcQp_bwRK3sNuZy_zr-wWSTu5ifxCQOp2FUCSwkIC7keFaRrjuZQlTlGWjBMnH5G9bFUBIydsW2F0mTSXAL0lqJdyslIHCAKCcKlGpOcoEWa6zFCMJ0iTe9WFuaRueRe5WJhGKYVMwq3TLtlmjE5h8IaVILGzFjvZEKe_wzER8l2plV-tSpEHDS84LczaBgXu5M3hcWMiEMUzIZDKkcIkg0zJSITqKTGIdGwqMSlebCS3W8G-RwQ2awXsSN3kLoo2kJvQ1DvxL7uaIWRQjy1HjAr6wXaFFYCPiXAZkVrR_skE51QIVQwGQz3iMIvNig-AfdOYskmjlU1RR5ExGjwm_9zaA3xOhd5VNKiPwxk8q-QwFKOCDV7puEDbhdqXCVQFAA1uFGawOvWOCpOtC3iEgb5AKf0sQw56sxqTLPJwb04LwMRWn_Tl0eKcBhEIaKnb8FqEEErMm8fg6iyRfBywE0bepxfDDVwv0h5dOYKQ58sdnyaTH1gV0R6xcEHjufXiHoXIKsjWgFiZlHk5UXxQKjmlunbh-9esimzwMsdQt8xjZ-u1FRFmJ0UaCTgkyiVhLwlEXyqcC4rU3JUZr70p4YSoNgrs4XYg4CGCTqgiTU4ybEZSOdZuirEBYF6V44s-HWAmhM85UUVSDzBnnsGqMx0b9iSFWIuGMY1VskQPPOIAh9KLhu85tsqdjIqf0hDabIR6wWEXz6KH_ABewiNPw3j28cA-v1br_MKGU2JQ7TPOENJ_BcEJrGKmYHtpEdFoq1YG9k3IwcGAsSsm3MOkOqCW06VW79McnJP25U1JkmpyKCppa2lxj7fpidS6_EAHFNYKIL5U2FhVGBNHjndrIhAN0K0yNXAlxCr4vSxEbR4jO0G4Rk612WDuUcdAGL2sBtH6BPeqNxuNMKL1vKtCtQ4XfHOo6AVxcFJadsEiv6KEWaCdjjO3pSRzcl-KD_HExgzutIvbksVt5I30gr9-ziMDloso5mFg-4oKFYq3C6yhq17HV9ZDoINnDiRr6JtU1x6_EhloMbKk4wfu038XvoZZr7EHZdUojWY3tapZip4IpmM0Hix32AfL_qLLWUubZZQ3bTDTMt8vas0saEd3VCTxZap6ZoU9k3tJlgatYjdR7IrOeTID_Q246I_vMqyjm6DUNzHFf6xMItrclDooururxXF3Fd3qrECHKlhz8cer4sCFtd9wKq7PEyCCFfJYgfseZbVIlPrf9u2o_02umvkcKdYu4FC4zFB7hTbX-hB3kybBshNRZlX9oJhuPHSni3UBDo-_rFnudlwIT4gARuGC72rMKvSsjMXCiw8TTZ-UlhnwgMH2MPIk1tvp6F6Q6khqZxuIBa9Xk-YmM0w5GGBpOJW3CpkdVTrMMQRFJzSgIJ9VbLuPl2yIZ_rrO7A5MnCJUhKb0kdHQnJARMfv4AZomHJqXExnjbOPg36dQ8-nD0FCSxxEFuJExDrJ4CLP4quDDyRCdtINEbigowzCnMQ52KX9SWsK0LCjXsfwhDUXyIdMgSURCeuBFYBvPoDdi7Zxex_tdUitPFLsLad7WM8PA5VqqYpxaFrLe1R11A55JmW5m8HL4j-FwWBF_hTixPFcWE_aJZhf2-2F3eOjCftQd4Ue_34e96qoDw8BN6ONx41pgila5KiRj1u0yAUzqhzzXdm1rnwOw3enWz7tw68Kweb7JlI1bsi3y3nmMC5Qcsy5e15l7w6VrhAG6UmQiVAjLhTCIIpyKBRr5B4hTge2vILnKDFp5hFYDt0rdWv_l5KT3KuoztxhKFZcawaBOpyEbzeh5SGHCBY4noNuWp4ZR4YLIxVpvxM6mD9eaMShraPPA5CsCpwpRnYFrqarrhL3n8GQj7E6W0bJ_HDeHZ9FgQfenoukcOpTv2L6ICiyhNmX87s8VIUY-QgeZThdozymnUHofyaXIYxushFkF_r6NSSPtQ-Wvf0qLjkrSpJduqZHowjq3gtoafapd4fSEJSXdmnIMR5dw245p0PnM33YULO6lpnTo3VfAm-sMV0f8VjTIbqmGpmrE4aYorc0MsujZTUXYBPxyBp8-Q1CUniBo8yLu7EDvChZpGsO-qM5ARRd-gMsOzGhwgZphrlFJ5mwQ4HTNRndQZRNctUyP2uHT-QFtctWYvdojr-dRfHIZCygUUZPLlz9Nmnu45LnlIr1XQXlRP9yDUQfDtHrDhI6m4ul0WtLr1vZeXV21K0edMVs2_k5l1L9H4ig3PpPIM4bpJnOHpL_Drrw0oSLd7vTvpMVWrT4wI4YsTKeYE98270v80TEu0YY6uU_Dz_TKJYokir8ewE_HLXe3tdvdZ8YvHT8ZvbTgNT0eAb6FM0-wexI3UC-ihUQfpMVJacPNjOXREFVF7VhdMoWsdWtVY_9Ey0DEsE_E2Ci7hpr5zyj-FYFa_X9EwhnNKRCg0O0m30rxY3J-pZE3-KcS_gXDd-1exLW4l0H95412rdjwsf1zOR-cBjRuME2EGPWoZHmydeUObuBwml3uHPK-0HKfku0FjCjX8jMT_0KXMiLeCppXdS6rOo89NVYwN_exRsgnSJftpg-eDtLKRM_Zi5Ieue_p0yfqDufsHx3dWgE6I7MUJarmNMwl0-FVu6BVWPJofeTXJ0-yOJTBijOmMzbOlMdJ6qO7YfoOboRGBuUdt6Y7Osoi9fGSLouRZmvir5EKJYbuDqjVbYXYu-JsrqtfP1vJJgxHly_zES6nmXU_jbZ6KMcsvLgY_Qw9ocPVzKyDn4fQ62GRtPif-5WnF4v1gn8vjdWiRjMMwxhfIgbpp1Z8gdBK7luHrl_HjNVYR6-1Dp_5318W0dhz))
- [Custom data types, key equality operators and hash functions](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_map/custom_type_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJytVwtv2zYQ_is3DWvlVpLtDFsLxzZgtAtgoGiLJhsG1IVCU5RFRCI1kXKTCf7vO1IPy4-mKTAbMCzy-N3ruzuqchRTikuhnMnnyuGRMxl7TkrEpiQb5kwcWkbE8Rwly4Ka5-GLlYAXcP3x7d_-FU_ZG5k_FHyT6Bt2ryfQPYJLB3Axuhj7-PO7B-__Wr5dLuDNh08fP3xa3Cw_vIdnsLi6Wr5bLm7-uA5gkaZgTyoomGLFlkXBXtU7TplQzF9GTGgec1ZMYJETmjD_IhgZueFKrMTPXNC0jBhMaUnlUGmiOQ0zkge0TObHEhEZxqWgGt0n6fxkj2tWEC2Lgx2dFKXSw4ht0aJwyygKBMk5kVRuOCXp-U1dEKFiWWTBsVlcKl0wktnl4RD-xFj4EYu5YBHcsQfQDzlbCRQqqQaKYDILcT0061BhKIAL_etFqIFc9p_WlwYRIAwTVBGG-KfxIjyGcQdQ7Z4q2-LfD2ACpLrfebDGX4uwuzznxZakJTvrh90540l84In6vid7oKf40pM-8Ca23qjHvanBICEqAcx3StbpiV92s6qt6JSXrS6Z10RzB-5xPilWpn4Gd4P6HwjJ7inLNVRYJbosBNwF5BKMZY9aZ4jD_ilJ-k0Tjcpa4tjOtZTpE2xME-Wd8LHZKxJ17IFRYjVB6wkCBARmMyMd1Nztgo6hgoxw4W4ljwYrYU9aQHafF6B0NJko_i8mEUSZhTnhhYIZvB49H41GDV0wNNdMA8t0_gDK9BHBUmV2SKllYx7Lcv1g7W8l0MDZsV-VP95dnj1ZU6k7OzulWHO2segN1rpmQAS07QZkjEzPS22SNqxrxfrT6bNP4ZptuLAKIjKZZOQO4duuErZgbh3hngyVpbFt04lMGxrO3dHA64vnhaQp4VlY58cab_sqbqEF06OYeKeuzueNfoDPX3qUcq0bfLBn8R62Og41351BxtUd0n4w6EVStowmSJUcvnKdwHg08pABoFKJg6VU6DjohMGGb5moU9YLc0eKAN5LzApKNuCU4LDhKMwVUOwjePhOyK8G7itDVTi8OM6nQiPlrEIExXLAXJjUppJEEBPaZPf16JegS6Yxddb4v59XVb2AMxVNmvbo7RmXDKnn1c5rg_utTwPSUro6JfePYdgoVeeI_hScwzbzZPNTxCdFiGxcY7inY6_fVDEKvWJa2hSoNgd1F0B6S5tzE-n1Q48ENY7t3MzkKWpXrIEm2_tmCeZ4UOfY7RWgd1CNL_fdp8fMTwyNj0psw_X5epDv67leNaHBnnVSsGeK-gfL-XtRfqTYD0pxX82Pf75b68cF3q_k-oI0mRzcsKZmBs1No9XEjDX3XJjfMgxBhtvAY8DE2RwfRBzzKWDNsCxLTPYBFxTJWJ8JLQUa7PaeCETBbY15G8AS9djRettL4Wf-5RYiyZR4jkPhnius2dvOctw1Iy4mqWK3QcurZlu5PRzvgBc9Znn7OASWdq4NnrXzJsEGZdtRTHgKkblnGYKZEYWWYLXWFxXjYncnCJrD_5clDdyia4pt-EnB9ieOxicmLOz2sCO2PDDrMm7n2LG6vgVMRGbhDPuaW8h6AP68vs50ZFwb7tW3yxjcAyMMZW3nxRrTMJ3CyrkuKcX3pZ_gyjLIkMz2QRWs0G3n0lxYDFYDbm4euILvT1RmOb4tFfvXLEdsKR1f_FaOcVvmun4Hc3zUOKMvX45fgU8KmsxUFr4age_jPUf7dh5ELPJTkq3ti1nK1z1MSmmKi1tUhHi4gANR3Dk7r93Hjnqwj3Fydl_s9z99O9MX))
- [Key histogram](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_map/count_by_key_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJyVWYtuG7kV_RVWxbajWA_b22QL2RLW6ySt0G0SxN6igG3MUhzKIjwP7ZBjWyv433suOZyhxnK8TQBbGpL3fc89HG97Wmqtilz3Jlfbnkp6k6NBL-X5bcVvZW_SE1XCe4OeLqpS0Pfxm-ucvWEXX97_d_hRpfK8WG9Kdbsyl_LRTFjzlUWiz44Pj78f4se7Afv0n_n7-Rk7__z1y-evZ5fzz5_YX9jZx4_zn-dnlx8uRuwsTZk9qVkptSzvZTJqVf2shMy1HM4TmRu1VLKcsLM1Fys5PB4d0r7xdX6d_1nlIq0SyU5FJYqxNtwoEWd8PRLVatbdsRgv0kLcuZ9xKZNKyHpjuC3hY2VkyU1RPl_RJhljJVNi_9qyyoVBfHm6s25WZaXNOJH3cCy-lwLCR6t9W0zJc70symz0zIGMm46t0JjI5bNnKjc7z1ShTSl5tvMwVZky2uoYv3FZ_nGJDDNRVLmJF5v4Tm5i-cizdUphcjsWpZJL9l5mKCGYaqRmlUbpsGLJzEoy5yHTCirOvsw1gytM5Ym6V0nFU1asKbJUgCxVdxJLyL0ZL7EFn60OEiOK3KDASCp3Bg0XmyEMagUMmBrJkZXP2UppU9yWPGPFvSwZNmpbTVbg_GX1HJbmt6m3g0GYNUXwnC0kw25KhSTbvGuigGv3ipOdVvx1r607VNXyusfMZi0DA37MCyPZJYxkdTyZcpFJmkDCJrauynWBBmVFnm5GbG5oG85Cu5F5AjNMwfSqeLAxypBVK762kueGPfAN7UkKu8Mr4-ltUSqzyhqTxjtpd0md2xBoGzzGKQgUd81IX7GEASQTCRCiopRaDSpfV4Zp-VslczRT67FZc8rGT9RqF-p3yc5_eX_GbOch5L_LnV3_5mt2iZD5IkIgfbQRT1mS7J0D_5KbOVoUJpN6363sYYXosXueVjKmFFAZoRyMWiAICAv0TCZU1bS4I_CXXMEFK_NzZb4tFDnpyK2Qn3d_i03rvpV6pfIbVhcF--odCZ3EuQIKlFjVBajZgwIwhqXXFUj2L-QtEnAJKfZTjhr2YgEfrhttGiHeCe5KyasstjtIiCkMegOPFvDfH6UKsF7r8GxRGXe4shF7WUaCjgTWGCfMGeGcQe0ZiboEeACaXOTaQhnY5sl5Jildwbc658GTNmlAsTi-TYsFT-OY3Rcq2UGxiAqsTsQAJnzrny8tMvu1vT7vTTRfOxCUWSeG_et8S4crwiMXja92QLEpw-SaTIJHp17voA3b7IROx7FecQw2BKGJUnBwMrlE4C9Q1YTYlIRYuy8nhAeMeX8EgRJLi4I2lITlU3aL3-9VNnpEMTRqT8JTKnns-DsNAOCN6_558ggRB6hVTKTEfquVN9F0SzsVNmWHVhV6BS0XkabTJup9tnVxH489jtOksM3lO-0B8OdHCZXnkTvBK-y50mmBWCod5_KBJN5AX10uIycwRjfENBkiIhqTyZqrcku6r2DKzYAdPfVPnES1hHmNpMY0a9xSlQirBdAdKMBGv-u57wcHteQnJlMgUSjQuolWTenQxoMy-Tuc4ZsoZQb-5Lz2x6zLhEhUWAmfTBydIWdtYX1_TIXllmprtMDcjB0iz7YUreFMSxRJ8nTixVKsltKIVcyTJDryEjIMuHITF2UiS6hI-aNMfKie6oghmQfTsNrs-pOrCngpigyILANw0ZUQ4LHLKk03DbYwxNyhDU1WCbLoKq6WQnjmXOV0Clayuj7AG_LEAdhOHTqeuFuGQTdFYQP1RxdVFj3PnvOViiIoeDZFPTelsTcLrr1fzoJtx1BR5BPxxhHJyaTkD_G6IOpQxoJrE3Uhx-ehKyrI47MQvJ5X5M2mDopRiSqPCI49vCEPn4gLmRU3NirEBYplBNTtH9Sfz6la-_3Z3yk5dUWrXGVVhiL7rVLAN8cmeClWGNPCVKWdyjqLfzhsQRQyLQT5oj5pl6yK3aXaug_Z2mwYlTjaqiT-sabrSU71tdg0VxUifXQzyWUKuufG5IjmoKcKmnhalSY0yrVMYSQOoWxXtR4bAMunckmMtWFVm8L-JgqScMOJUllPLCTLxzUqm0y05NybUGNtTUMp16c4MouGRy4lzt2uBEdpGhm75-0RL8FnbpcgoHsWMpzsDlpaNQ3HmLK3h389PHQQDkH_bBil7dKQKrhAaA9lDV2mgOxRQVFIqnWKpqarCBRZHbUnXJNtUdQY8l3nQN924p6pfd37CAwxAWMftO5kaC9ynW4V2nJAVEbHEthve4OitIYdkLhPC_mI7kIpSG1G1z0fbd_DOxdGm9Q64K7nmwnoI3sOpDD2WlNTcp-tEfvwPNYrrrt24xaxwQ_0v7vANJY099IoRK2M38nYjhe0Vew5s6u-w_7gj24NfBoRCkR9fzZcsVw38itXN6A7dXziyNaF6tPco27ZolMBC_nznlAogrYgxt2C6J-wp6Dkz1IAIEW0hnk7WhoS0Q4kh5A20i-nz-P6rEv-orDLzutpJ_iaCwUwWnAN7MD1kKONvsOc5AlbcpK4pyFoNXarRJpGb1vBc0c2WqMBS0QPNGHnXV485FS1PLnnqJsBe5D2FlwB0ag-oYSnorKs3ZMMb6JruWQyodw19JGcbFRM2YsxD12nu3AlCHtb1rbHYJrXidR2FATxGDUBocPEb4irtbfzbWjSa1w9DOWre52mBpm3zzH66f-SYbF5uw-n_4gcajebD4AAbkSmsKW__aMmpNDDy3hdFgu06qnlcvQ8kUtepSYGbKxi_6LLiobspzaN_5AG-cuLfIiagoQBENNwwsly3yXYjkJwsuJBs187dPvX9o2NR9JaCSDXBqal-XeypHEclEDsaC69D8Snmrp3NPjO6_SRIz5UzxBw_Pbdye4ex5nssv03DTDlIDw8ZEd9VHz7xAoKL6en7drM5ef09LQRPwiOzmazyN9i9wJjew_tIsyIuETUD2DmqwTVBvVwr9qoqehdW5o6jEDuZMCE2ovFK8MJ_IgqpBlOgQlXhzduTO0_7giHF-BePb0owmXUORDD6CjQ20ZjR5Z_HCLtSoo7YqG7sOiO1e8t6F0PLmuiQz6aSMfCCpl2Aw5TiVt8Y9IEwGxnoXSvLikFtQX1-zf7IkaWarkJWCNx0_2WuVONXT7akBuDXLsK2xuZbsAkbrt4uDtnAyrpNNmRuyiKtL2Y1qPXjUkE4Rnc06ZmytItoBPN9uWje4CrkpsveGjQHiBOF-4G-KdrCOmd-MtirZmIJp70Bj26OqpUlu2fO3r5vRBHx2-rIywXa-P-FtIbQv5UHBwc_cCGdK-Y2ssEGw6BBgY_3PvXYcqzhf0DSaoWgUwhRIqHyBL9bQUPMMXyu97TwK8DeXbWEc_e0439_z-baMmG))
- [Pre-allocated memory](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_map/preallocated_memory_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJylWI1u2zYQfpWbBmxyaju2u7aDYhvLkgUztv6gSYcNyyDQFBURkUiNpJJ4Rt59R1KSZcfOts5FHZu6--7u493x6HWgmdZcCh1Ev68DngTRuB_kRNxU5IYFUUCrhAT9QMtKUfv9-OhawBFcfjj_dXDBc3Ymy5XiN5m5Yg8mgvYrhLQHk9Hk1QDfXvfh3S-L88UpnL3_-OH9x9Orxft38BWcXlwsfl6cXv1wOYTTPAenqUExzdQdS4YbUz9zyoRmg0XChOEpZyqC05LQjA0mw5GVO74W1-JLLmheJQymtKLyWBtiOI0LUg5plc13JRKCEskxUYqs5nsf5bzgRu8qSlkyhch3LL5Rsir18Ak2KnO5hcmlNoqRwkkeH3kav0uRQihxPc8lJYYlccEKqVYxeyBFmTP02wsuFWcpnONDgTgoqaHSuEUgU9iECffcZBZv0AJCwu6QPPC4jlKHeJVxDbUV0Jm814BvYCTiMiBPQLdgwGTEAAK0ZhwmrlFZlDYmwws29EYoEbBkFjatckilwhXMOrjPmGKwkhXcE2GsZXInOTq8EqTgtDblgb0ZzFNAdVQUcC_VLRc33jkvOqCeHC4wbCbuuJKiwHzRm6i_E9Kw7djxo_Upaam1VspKldI6KUW-GsLCBYu6wIVhIkF8dFc7wjIkBffWwWNeIFZhw7knKyuTSCfRGCP5jVTocTFsc_b4GL4nGuM1q5Lpa1FpG9YvJK8YzKBCgy8nsTlpHvzEVgD4ANdPavVLWxOC5XBnlXw4rCjNCnQuDUJaHccNeyjrR_EtW8W6UQQHORgjoje8K-2QN_IzsCUSRZjmUSSqgilMFV8sUwcwj6KCi7DXuPgW0wgxU35TeYavhdPV_C8Wm445SrCqObo-g_Fo9PVoNGogrpAe5I-73HFZlDMiGP6VCWvYKZVc4t9YY2coENnqWGepjKIcXScqrkWm4369nrCUVLmJM6KzOK0Etf5NkbP5vGVdG6mw2jxg_WpwlxW9ZSauRaZ-sSRcWYy-38l5H8ZP0RRLW8SZ23_MfLZlLIoaoVYbS3JLs-vLpmqtiHMAE-2_vpzLn6Pos8Jk2NAS3APsk7HvG58P5tKE_VmRPDbS7crnYO3Ji8-B2d24eZOcHw633GsR1yTEMZAKe8Im27GseIK9HnuKgZl1yG9jQW5Z3H043RdAu-c-8cbzeehXah1fXP22pubrR1-QHYc6JLtzcPokC5tYo8g3AW-669zQPQh7cxtAo-bQTrZsYcvCwq1EElN8x4BhdAJgS1sRegvYR5ZYznigccMK7UUhtKV-hw0m5f4E6NWU_8hybLfQFKxtthTzDtu7PbPQazxdBO5CqmSxcyTWPm45t1VVHsiWUYjm1t24WpnOwnofG_1tKoYJMSTsPZ5YMMVMpcSWzWbrmua8ftqmHw-mbFfXmV_va9vP6e8vtfVhlT0J-Yy0d9CaibvdYXqwYTxnusO8zefHrYnKD0oLwQ3HTfmLueP3wPa7EziOb3K5xJhjcOMHR1WkXSFh7ea7srVp1bxmWyly0sq40oYlWrq1Mk8mRRsr1w0HTq4-JF0hdNyunQTf89F58EoaHXQxOWWrZ8db3iqGbt275D4O9UrQ8DBROGsbwDQbuGQBe3BpCHEBBnO7fjTpHWTK6v4TV4eoqrVxE1HExqAYJlQSe8qk0nVFeLkOST_g2F-TUYPYMY3txNDasZHMavlF8jB8gBeeGPfF-bNxZeg_hptD3DLRdyBHMOkdovECPQeC_12nWtWImGs7xB5gMrWBP8vjIRad5j9yaKUOMJhLeYt3ibKhcIs3Z_hZ6pwoXthwgELRxpuh_WCZ6xg9cz1fV5TijdPdBFAGM01ILE88GlKQlSkr03M7kkJYo37RgcXRO-z1YO07Q207bcdRDBkvDm7yQcD-4XFkvu6cQ74l26aMfjNDs5gkSThu1OsLmVQJUwidkweW-A14rHPBnmsFseNuvXV2JjeshHH0bxtRt-tMp3Y2HU--neOB7i2dfTp7H599Oj-Nrz7-Flq_zl0cl1jaGd5ybN33Olw765OoqW4ti93y0J28b81O-vBy8j-tvoyeFIMNvC2I1ngn53dNNxmTMWyjPg00DPASVTLqLoqps4A98fU3Ni7MoolPTI0l-XLStEqfSrg7GV7Q4s6WHwjvLStoubrAgeFyVSxlHn61q9iHrS92wpJpiCZ6vd5JY837yTZjzsR5Vc860pC8M-s491t2LGt_VkibvVE3hbDrBMxmOzbaknBHOC4ZmE7hOrj01RY5rpwlglduB3UdWBF_5Isk9wkNLMfL_36sC8LzvUre0Xqksde1x6Af1L8DqM3vSoG4o3Q8eVWN8bEsjf_RKRgg2oy-eDF-AwOiaDbTRfxmBIMBRmgGbqTC6_YgJ8XS_RKV82UHk1Ka4yImmv0RCxeMqsRt8NhvnmP723qO9R88_uH-_Q1cSF30))
- [Heterogeneous Lookup](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_map/heterogeneous_lookup_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJy1WG1z27gR_is76jQn2Xp3fLnIslqf40w8dc-p7fY6E2doiARNnCmQR4B2VI3627tYgC-SKOe-1HcTSQT27dlnFwuuWoorJRKpWpMvq5YIWpNRtxUz-ZizR96atPw8YK1uSyV55pvfg4N7CQdw-_nDv3sfRczPk3SZicdI3_FvegLlT2j7HRgPx8c9_OfHLvzyr8sPl2dwfn3z-frm7O7y-hd4A2cfP15eXZ7dXdz24SyOgSQVZFzx7JkH_crUlfC5VLx3GXCpRSh4NoGzlPkR7437Q7NvcC_v5Z-E9OM84DD1cz8ZKM208L0FS_t-Hs22dwRsEObS1xg-i2c7a0LzjOkk211ROhjoPI35xpKOslzpQcA1E_EgYy9exkOecelzz2dK96Pm7c8Ym_fMfTTVvCVKlK5vqG8RuJZxtqDHgwObnb-GmBmIOAaQPHLJk1x5cZI85anHv7EFOo54mJ129zwTPIQPfIE00BgyVxAlL6ATSHkWJtliUxVYVQpehI7gwSA9mVRQP_RLzXeRUOAsQrChv0FhF14i4UfA4jh5UbBM8roLG0YZPPElmdDLlIOOmAY0FYiQANcQZskCH3PwE4npkDz7QRkZ2t8lJUmuIWLPQj4aM6HIlDa70cPc18AkqU_mvyHukIR7lVXRXkpYMLmElyR7CikEI2OcZ6UGlFKQKx5grFyCQE5n2rggJDrB0CEVgWZzgxcFo8pQyIbTVgTMnpFqtBt__57zDH0SC97fRF4hcbiytpkqMpYykU3RbNfYnj2Q-oynpvgkufTQxm8qyTwRdMGPmJQ87jzAHHFzSamoEIgMcYqXGJsRPerxmC9MIqhMFClv0tclf5E8ixRVF2mRnAcuL1VG0EueLXABCVSP4cElSVWZ-NTALgMXlwarAOZL8LGwEFfCm8kA-O85i4VeAnWEJFMWY59JSFLTBzgklhL3LT9ZpMh2VHXfKnmgDOi8Ek8komG8FwHPLBOIYvolAQeO6lqum1DniY4soSOXsGAzSOOkzfADYfpgrRqMCJnCSywwqVJmqgAdoNDCUPiCfvfLTmnzZA15JoZTaKLFCcBgAH9zMVrmYuYL4iZyAk0sKfSnWTLnVj1aBtM8TasIJhOKobTzujEKG9U12qozqDD7zOKce6TkFLAUmT6h9jjAJufHiI1Nbm0bkmMu9ItQpsgxuxkVFSrzuVUAQcKV_IFaBromBTrliEeKy8phBhUk_Pk_z6-9DxfnV2c3F97Pl3e_Xt5eeOfXf_98dnP289VFuzLeKZzbpK2hJjHH0ZCoamhSSxTll6B0bCgqCIn3jM0DXemTakNNzbEbGIq4Biu0IQ_zfZ6afrcsqWxZ8w2Z5Os9zEWtriw3Txnn9Mpku7Q3NUolW3CT25lZ8jx37HlAbFDiP4iFq7Qka3fahgVU-2-MWx373YiSagCWF83hDWIfAibanpaTye7J2zYqTrYFsVv_huw6rdPykevpcNZG8Y5l46_YzBWxkKA3oPctHAYkt50y0NnVL2ST_tH39CuO8kFpYLRpIOM6zyS4A9eEN61hOGvbqA5gdDSCQ-uDjX19L9fNVNtufhXpbDHw_xvlUP9cSKoZc0SWzZSsFMaRgmi3JCFp_x4RUZNHYe3l4tWn2y6Uv24-3W4zc54kcZ2SKFAwLo6wd99Uv7NIvU7RmIf6OxxFnbscfWNn4tcls0rSkaO9S2njQQdOG9luTHQ6hLnh5LnD3SJeIG0NuL9tA6P9BkalgRMSrRlwRK9bKEmKBwIWqJBtpD0BSnjwb2m20TJkvvBQFidYhSC9JRgq-Gg7pl4v6RAq_05rJ9-qN-pCb7TeL0qtuhKtOjeK9oeh9ZcCw0tM4hPf0ffUzqr_PR7-GWcQhmcZoxG-tGO2nFpYt4folX2ATRiD26jvVT3iAxivuxuJqf6chiL4VfntD0lQkKva971Se-pu9R0zMc7RLPPMhIBH9hRz0HSSzFZNT1frdQF6URYb16hpld0Z0IchhyvLWuZHQzR7VDi6sfC2Cz81LIxHx10YNSwcDXFhaBcslZo9q8hjPKNf5NvRj_3jsAtvR_0xfozf9Uf4cXTU_6mkF1HGdGDlzfmjkOXBsmBPqNGMfWYm94pra7tgltnjJzkN9eXqalgEYTdgHnAyEgvPdhDycFqbCKtQu7UCmM3aRZK_OJQt3H1ysd1xm-2C_Vosfa312rapdtEpUlTrZN93YWXsfRFfC1P4dX1S6Fl3Og4-8xLATq3tGojdDUQP6-2kU5X1P2jubr7auLuYu4_jkcmCQNhXCtVkiq2Ux_Q-A9zJGO3MenuuIa_dI8wBmciidaLmplnc3jTtWWoCYI_YVZWuXzRqpzslbz99y4HesNfM5QiUS1q55MoK62Q8QpaRY244RpzILiZjW8hWFv5_9Pb4Dwu9f_8eawbrZTgsLC2EojyZLC6LatwfkDnkTSzuaq_aZVh903DbHXuy0iuk3S0ly6tHXAb2QbG92NR51Y_NvhBiuQavuBKKjeXX3CBV2z7QGZwuzZu2PNZ492H-k5nMzJsmGkZTpIrpF3WHa6-h6jyICptU4-77yT5Bi3dUouPO1AquvZJ1hCIblpWkry4w43u7Ph8I3DI8wY9p5aiD8wQOD6ueU5-57D0bJUsRbCq794eCn6e1eKqN5IVvJuPpFO5bV_YthJ2cXZ3iY7O4O5GRAx0rWFYyft8-UXeFR9vCVQ9qNDbe3N-B3qzZTruI9i-4TpCjvgl-dwWHsi4HACIstyO-20h0i7Zj56pT55jLqQHQTIGNIN7j81ZxmTEf7pQY4jN80urSuxkR4z2kfJ_dks--Pxof5yNcTlJtX3a3eqj61D88HL2DHsv86FQtvHdD6PVw8NM9GrwCHvRitpjTG_BYzGs6fd-P8aG78OADvIPIp9a6W6xjR91Yx2pvrb_Sf_8DNZcXFw==))
### `static_multimap`
`cuco::static_multimap` is a fixed-size hash table that supports storing equivalent keys. It uses double hashing by default and supports switching to linear probing. See the Doxygen documentation in `static_multimap.cuh` for more detailed information.
#### Examples:
- [Host-bulk APIs](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_multimap/host_bulk_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJyVVoFq20gQ_ZU5Hb3KqSTL5nIlimMwbQKG4pQmlIO6iM1qbS2RdnXalVPX-N9vdley5dZwPQIOmnk782bm7Ug7TzGluBTKS77sPJ55ySjwCiLWDVkzL_FokxEv8JRsamqehxdLARfw8PH93-EdL9g7WW1rvs71I_umEzg8gk8HMI7HoxB__gpg8Xn-fj6Dd_efPt5_mj3O7xfwB8zu7uYf5rPH24cIZkUB9qSCmilWb1gWHVN94JQJxcJ5xoTmK87qBGYVoTkLx1FscMOlWIrfuaBFkzGY0IbKodJEc5qWTaF5SaqINvn0R1hGhlyzmmhZT_sendeN0kMqG6Gj_JwrYxtklW4YxbPnIYr90zBB2XmvrolQK1mX0Y-0uFS6ZqS0Zi40lIQLfyN5NliKHZYLjeJiDc9sm-ptxQDgBhB3fXRtSNEw5-xcxnk4wcpKb1PzqExLBSsAbJhwZKP0zjuoMxzALdBAKcpHs29VDUpnSaL4dzwIC4Rcxq_jOG5hwyHKA5F1Q3HIBLqxwAvXOYziOEAsqEKi19UQjoCIzP5ToPOWialhaNm0UTtOKoKF1MwiKUF1cARzBTSXCIFnIV9M1BeGGVFtHAVVa-Ro82JQFbQBcSaYGApJMlgRM16QKwS-imy5KC2s8lRbk66xQa9zU5xbZccF2I4LGAft4UPzdz-PYX8KstF250aw37eNdXJKkhNBTlyQivD6PLcpGJ_yF4PefFB02EACnXBN3RYWwS3D62baBLmZxovE4jReQBW1h2-jdRTAbof9xBp2o2CE_6IoArSML40QnBnsQ-vc9ws4XAjf9czcziQpyTNL7T3E6aXdZZ2gpqd-PAh-FerKMOL0B90pZ3tia7xdne3LV0jTtpWpTxotgQ9gh1tJN7WA_2rrjsMr8BcwhPEgAL6_hn2vwXOrOVQ_6s8mN1dTWsWiVAzI7CmnTP-UXUuWiQz5HyM-9CdVyydmlWx6DqbVbgLjP19fXV3tu0F1g1S5bIoM57lhMO7GiYz6fM6Lqyt9arOlWqYrjsRc2df9c52S_D7wWNSJ1dYWQNxXZM7oMwYj2tVFamb2jcZ9yLJfovokZTE9nulztO8E51D_g98hVgfr8f3Mar7a2vke-K5QkJnxWzHZbQmiKVNrxy3Z8bbC9X-K3k_YMsAdyrqkfAV-L9oNuAKh3Tt2JWNkDZMJLL2HhlJ84_9m37dLzxgt3nmhERzH5ai7gF2Lu3eoO2OjIpni-myW2_6qGEPWVAWnZrPYi6ICt2FBS00KI9yOiCPhhH4u0d6V3F5F82JBC36eUFlW-DFSH79iPLGhdDS-bEbolpV2nzheiPFu6Js3o7cQkprmN6pM38YQhvj60vijMRXLwoKUT_a7p-BPvZiU0gKNG0yE8dCAcxDP3j7o_LgbTvyoRG__1f79C7pWKuU=))
### `static_multiset`
`cuco::static_multiset` is a fixed-size container that supports storing equivalent keys. It uses double hashing by default and supports switching to linear probing. See the Doxygen documentation in `static_multiset.cuh` for more detailed information.
#### Examples:
- [Host-bulk APIs](https://github.com/NVIDIA/cuCollections/blob/dev/examples/static_multiset/host_bulk_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJyVVgtvGjkQ_ivTPd0FUt66XCUaqkNtIyFVaZVEdyeVamO8A2vFa1M_SDiU_35jLwtLEu56ikTAnvnm8zcPe5NYtFZoZZPh100ismTYbyWSqYVnC0yGCfcZS1qJ1d7w8Lt7OlVwCtdfPvzVvhAS3-vl2ohF7m7wwQ1h9xMavAmD3uDXNn381oLLPyYfJmN4__nqy-er8c3k8yX8AuOLi8mnyfjm43UHxlJC9LRg0KJZYdbZh_okOCqL7UmGyom5QDOE8ZLxHNuDTi_Ydadqqn4SikufIZxzz3XXOuYETwsvnbDoOtzn7w7NXG68dd0MVxQgXSF32nSC0TOTuVfckVBMvrwv9ULwY5sWv3tUHDtP4wttnUFWHDhJUQhno2X3tNT79zlpDTlZpzMv71J8YMVSIp2o3J4ZgXP4gAVl0hnm0IK3lEHQc3A5whMlYJoEmGkSIWH8ZWKj2BHshuzDblwGZghEyTUItdKczYjG3OgiokZnprJo5C1mMNcGMi3UAvQSiUeoLJDiDuFWUP6MuwVtYpRbg45Ir5BWFDDYUSPGd7je86HECuWgYEI1Vlpkzana0DrFC2HINHXrJcKICLq3QTOAbhc-Fku3Biu1K49gcBnKSjkiOVvvSoyECItCoSQxVkx6tJ2ggMXtL7C59pKcSESUVCDkZD3Pt3FczlzQYg2KzmJAc-4NUYG1jv-X3kHGHAvH2ZPlIU34sDSAgWcaNioedJJ2f3-QS1_MAm6pCjgdmJRaYhZsrMuGQyv-xtTVcJUv0ugwgrPeSa_X2yO-1wWxIhKMGkiQSjMWUhezcNb7GaRmlEgWWiF4ME8x98BhNy13CbvXOXv7Iok9-qjc5ChkY8eqW8dp1rmF-vU8ZA1CNdwLlwNJLJER6G2FertNbVkE7T4wGysyylkqVekZlQ_jgAgedsF5lY93u-rbVAFaW5ddfjbPM_X4WCNOXUyaBtJlq-8ytum1oN-CQQs6nRaIx63Dn3hCZbmIvUIClxkFpJEW3MDd00ACq-F-234KKUcnNQEHJ5AJS0S42zUMlPNmODwYaLVzBsN6FgbNt3W3inwjAs5wQT3XbJXwqLLwvVfL1iSSplTR7I6A1IK6nAzM5iF_wXA3fsszHsUuqexgy7nFCoTaVAC2oDnQCsJEqeoKVJ1atmApIDVigKko_F86u6r0ypUFFsFN0MgGTgVzPN_OIRsq3xE9StSTuJ0jPRJwMUu1d9SRadijdtlfV2H7R_hdU5LDsA_TlyYb-f9ILWyjLo2eoW28wOWwNv4DJipxHGfL9Go79GPJHIh3OGrg6wG7lE7cgvQbjIJZLYfVJfIvBXsAtDc5pF2tN49MsyrO01w9YwntlwNuJRBzaDSOgI1eqodmvF-Pu1S93GzCptSmnLZkBufndL1de061al_BBYFnu1btTIlQEk_7CCjpunvZ_YIJ-QqudYEupuqeZh_cG60WdYTycETSGwXhqqEVejVyumno3WL2j8tErTjvD858n7b10pUvz6RNUUf89ev-G2gzw_ORLdI3PWi36cpx9OFIWczakhWz-ByVYlbD5JxLWqTrN7xkaYFuEHWXPLaqfZrkB_tUysnjt_j3DzgV3SY=))
### `dynamic_map`
`cuco::dynamic_map` links together multiple `cuco::static_map`s to provide a hash table that can grow as key-value pairs are inserted. It supports `insert`, `insert_or_assign`, `erase`, `find`, `contains`, and `retrieve_all` operations via host-bulk APIs with kernel-based implementations for optimal performance. See the Doxygen documentation in `dynamic_map.cuh` for more detailed information.
#### Examples:
- [Host-bulk APIs (TODO)]()
### `hyperloglog`
`cuco::hyperloglog` implements the well-established [HyperLogLog++ algorithm](https://static.googleusercontent.com/media/research.google.com/de//pubs/archive/40671.pdf) for approximating the count of distinct items in a multiset/stream.
#### Examples:
- [Host-bulk APIs](https://github.com/NVIDIA/cuCollections/blob/dev/examples/hyperloglog/host_bulk_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJyNVQ1v4kYQ_SsjVzpBgg3mepeeQ6JyyeWEerpEd6hXqa7IsjvAKvba3Q-aHMp_76wNxjS0qkGI3XnzZubNrHcTGDRGFsoEye-bQIogiXtBxtTSsSUGScCdYEEvMIXT3K_7J6mCE_h6d_1beCMzvCrKJy2XKzvFR5tAs4QO78JwMPwxpJ-3Pfj86-R6Moar2y93t1_G08ntZ3gF45ubyafJePrhawTjLIPK04BGg3qNItqH-iQ5KoPhRKCyciFRJzAuGV9hOIwGHtdP1Q9S8cwJhBF3vOivnkrUWbGkb8Td6jJVbYhdaWdsX-CaqGdr5LbQkQe9gBj806HiGP2TgufMHnpwY4XAxcGeLIzVyPLKuX9S6_fzgrSDFZlmc5c9zPCR5WWGlGdtnmuJC7jGnDpjNbNowBnqCBQLuPfVJUmrvHtIA0-TBhUljO8mJtqKIpWFnEnVWRdSdFO1oX3ikmoJU_i35wLI7dwjuU8AH0sNVFqSGPkdZxaUy2fSYm4IGTvq3GgEw5_OAfp9iD--95UC1PIlyYHEo-klVJ6dhqN7XuPJ9yMq9NXCfWO9ByGNJTVt7ddm3nWmU1miOS6pzm6vBkaohF8MWvzfEKg9UiFR-L9GahRUGVOCaQE-U2bpNHiZPYKVpS4eZV5votaF3jINokE8HMbvzkCaLdmCuczCmmWOHJUg6TRNclkoQYgCGLwe_vIezANavgIvpKdijkyVyGAEqVn3dpfRrMlo0wR83pczUdJKlhFVlQKSTpRqneOLIfHKN4iNES2esRDAqIt1SymhF2zNImJC_Ifc3QNSP2SeyrAct-RsSbMIf0mKpgoLbLGgsahApBXp9z-DbZdw2hrFPgxb4a9Yxl3mZ8mTcxJTKpLKPu3oK_nbQ113YWcVs7bPRSupHaKzi1aR8MJZfwzSYKrdQcCE9rylydT77J_KJ03Vh13gY77Hs2pc_WB66AvmKjU2N51DS_XQkFnJidDYkSjcPMPLztE4XZL2GHh_giGEOBp0j4enwci2Smm0TisY0PKZbhVe5CW9B_X-8gnUmvN4-MbFZC5KW99MQUhEF_z0ND6DkGm-ujD57GwAYUhvJks_lmKgCDOWz6vrKpPzFifnPKPNNQUiPtqw2qmH4Lm3s9NRObDTqQue_6g-fwORbmIN))
- [Device-ref APIs](https://github.com/NVIDIA/cuCollections/blob/dev/examples/hyperloglog/device_ref_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJydWAtv2zgS_itzOuxCTvxIsre3Byc2zttse8b2mqLxPYB6IdMSbRORSR9J5dEg__1mSFGWFLvoblskFTXvxzdDPUeGGyOUNNHw83Mksmh43o1yJtcFW_NoGKVFxqJuZFShU3oenMwlnMDtx-v_9t6KnL9Ruyct1hs74492CNUjxGkHLs4u_tLDH3_twod_T6-nE3hz8-njzafJbHrzAb6Hydu30_fTyeyX2z5M8hwcpwHNDdf3POvvVb0XKZeG96YZl1asBNdDmOxYuuG9i_4Z0Q3m8s9CpnmRcbhKi1QNNk87rnO1xn_9tNiM57JJkrGBsdkgxR8ZX43rL-1GF8YOMn6PepN7nlql-5tDJIb_r-Ay5f22fKGM1Zxt3fHgxIft7ysMGZRiNV8l_JFtdzlH-_z7pRZ8Bdd8ixmxmlluoDCYCVArWJBXw2HNrUUpqmcEqpx8nBoXMidqthEGSvFIVhO4UQ9gNxykkj31IIVcY8RXXJMbYFH6AU1k7MLJTZmEJUereAZWgSD5W0wKMEgxIGoLd1xLnqMKZmGFdMZpS5nOhGS5sE_AjRVbZrHswFi-gwdhN8Dkk1OgkFrDg9J3uWKZF4OW33MdRAm5KyxkzLJ-mfm5tBwNQfcwsTkzBj7x1QzN74J_nBLL1GIykgT9WbI8SeBeicxZmCXe5rjkonh0Aw-shDa2i5Zmw6ERX3hiQXbm8hl1w2AAM82kWSm9dba1Ihk713yWwKRqxzsUNdamc2TLXKV3nopkF4ZSg2doLNWKIxw5esm2PLg4HFa-k5TE8bvyxjcbLMHMHyVO_PiSouUMv90wjUncYm3oJ3RPaSo09MQ54qh7TnvIl9LEiX2OwYIkMY4f4-h1ufgsn9AMb7K54zbdfP5tr3C2IfF5rh7IMexd9BaLVO2oElAN-kvxIOXMcGBZhkhgqPSzJ_RYpGAaJiMvwhSG33KelTowuFvOrZOCxbaWrjY1dqnQrk6NI6QeAVYgdUqNUSMd0RuA8wLx6Oqq7luqCml18oVrFWsuUKveaW6TlBl75SgKPNwhiR3H9Rh0OpdOnUFYs_Fe1XjUyi4qcgxJRROXvL7IGybnSu0S7Glq_RGs8fe12PYfsYNc6tzDZcUjskdo_hnV6ALTNHvEh1PwdeOeLltqfZEGESkawRFWxD1P1loVO0NFJ0xSVp6jjjv7GniDx9YnuVVbvgfohTlUmMTf6oXqMa5lyeyYfK5Hv0u91i8DS_Vp4s5LzaKpFFZgwL8ctKqhtp_mnOnYOeXz4v7bN08yrZx82BDGxxTwKwQKePYFtQ_h9yCwYzF4J7GDFow3Egd2Z9Mky4DjdPOUyHjEsrpt2C4xkdcEnfjf_0CkgQfuoBupwChEjxKsWzjL7hoYuyCBi34QSA2M5cao8xz9EVAvZ4SD1grcDwG7F9tEd4frcOuwYNFwb-EE6wIV5AoBoozL7c17wgj67_WnyT8RPGT2IDKLmUen1zxowfeljRzmEeHcSnM-j8qMYR0TihM0eUtTtcUYOI8QhNDCvXleYmhKcN11Oqq3pKuOlyMlghn-T5mO3KhS0YHyw7EvvVI3QErWBgZQeCrqGp70w2G9WsUK_GO_bE_ETuxOGI3grCrUEqhbhpiNKvIM2G6n1aM7yp8oxwtZbBOqErMYLCoQWlSidhoxcRXPo1-CJAq8B5HvMrT4uzwv5hiWqFuDoG7Ls04IZ9WzPp0ycznecr3mB6Bjjy1ohC8WP_zrqLMR2GdrBDBatYim1LGiwqZdtMhdBVFQnSIfwu4-1mTdS3MJqQ_p7n5klytF7eSmsMc2k3JNDDEIO4rfzUo8c_vI3RKaj10f_m_4E3YcIb-dJ-xA384RnARV2LA5_cE14tUk-gMzSEmsXUbrxjovF53Qg6YBE82ecbITITP-GHdwTDa6BvO8L6r2PIqb8whpqwT6gdRMX6ezx_BK5uvZcxBawPVXjPUOIoz4Zrdf4gscTPTrNBBQE3siHI6VT3XtNF1OUCwNq07Q_3LQDDrCKJcDpw5uvqUOgxuOiAx7zBZalos0NV7A-A3eptpzFGq4tzf0Ne6VEP117IMTrM29IH7pnXspO5viuWVCxtSZoYT9gj47WvYjgp3LPWVlpF9fGpSvblxXs7Fjda7yx51uXkAC6iJrWFUv_nbpAn_-7udWp7TAIuj84SL59ecyQP46Oxw2rrxog9tATFzpq7XROy6p7RozADKBTsrUer665HBTdkuK6S_5GsPZ6XrCPkI5PZwdX8yal5BmKPed1-qkvTRaqRgGyketLKvDMqtV6rCV9W2W5WmRh4X2wDaENa-Vvxkui_wOSqRSTkA9oc2KzpKarMRxHqzxuikED02ncNFDu8M2pjmtY01HPabUpHwotktcdI5euRxcheuU-wBA6zk2L7yZTcrbok_B4RL0_HVfmot5I7S5j2rjqwKhxI5u9OzI94tWYsPBu4__IsH12_7V1dX5WRd-PL_oNswbj8fx3j66XlT5r8rhUD_8nmJoOPV7aqFk_Go1HO7lmoZxe7eIzz1wH1459ttMs-2Gw3AVO_65YezRl2J9JNSt1eVopLtt6wJNcPtbQ1jOm1Fb3uezsGTQrPh6-Edfa1Ws0dYAPWLB16RUUzh8e7CE8fPotkhTbsyfsNxeFxi2hXZXNGkFtiLebZDHCUDkyutLdDlpz_zqGnUjmtN4DdL7D8GRvE_T84sfi3N87T_S4Muoh_JG6enp-U_QYzrdjMw2-ekMej0cUrZHax1uSFkvZ9ul-3Sci2VNZpqmOR7SfQ_l4YHF-9xd9NIN73EONt5jrKKX39zf_wPMOtC7))
### `bloom_filter`
`cuco::bloom_filter` implements a Blocked Bloom Filter for approximate set membership queries.
#### Examples:
- [Host-bulk APIs (Default fingerprinting policy)](https://github.com/NVIDIA/cuCollections/blob/dev/examples/bloom_filter/host_bulk_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJydVgtr40YQ_iuDCq2dWH6E3h3IccC9aw7DcckloRTqYtarkbVE3lX34YsJ-e-dXUm27DhHqQxGmvd88-1Iz5FBY4SSJkr-eo5EGiWjXlQwuXJshVEScZeyqBcZ5TT3z4OzuYQzuL_99Gd8LQr8qMqtFqvcPuCTTWD3CB3ehYvhxa8x_b3vwdc_Zp9mU_h4c3d7czd9mN18hZ9hen09-zKbPvx-34dpUUDwNKDRoN5g2t-n-iI4SoPxLEVpRSZQJzAtGc8xvugPvd1gLufyJyF54VKES-64GiwLpdaLTBQWdZ-7_OrQxubaGTvgyknb98pXqhQ3lHixQW6VPm2CT8idJQQXpSoE3562MviPQ8mxf1yDUMZqZOsgFtLCmgnZ2SiRdufymRoDL-Q0IItPpQbp1otH3BqgawKj4S_D4XAMu2swGFzCZ5SomcVaDd7-dCRbVm6TfdwzGPbfjetIM8JcW7A5Qia0sZCzIgvxfDBVKwK8bySQrxLEdebxaw_jlvW0DHlchM5CHXTrlXGjLFFDGG6d3YPnTX1pYLclVaWOLQCcEXLlTRbBZOKzj3eu9yX7LoEdeMF3YXNIMWOusFANGJhMjwsK3XvKJUmbc5dNrqs63nOrw5c6tbFpkhAHLVxewjz6zRWPVFjAPWD8dj0ZtYO61B7EVTVz4mFdZkKx5hJaF4UPuVCmRZ27YmeSHPC8VbUfWKeZXHfcdmkY3fGq_hJXRNtuL3j0KYO_H3XrNMx5rpSLYEW4t13GbQNyDGTZ2Z63yVJZyV2YyuFA1QTYl7Ef8GkyqyxIgoM3rOnM0rTTVNGrM3V_iNpSqeLKW9L6oul0qsJ7kLHC4CF2Jx1l2_HgpLRi1K18c6i3rdMX6O4fS02hlTPFtuYQpvvWyPEhFwZMrlyRQpWO7Ij0VjuMS2WEFRuEsDwImIfbu8mojQodVUv7ybyCprdvvBnsfyk3tGlzZoFpBKmsb8DQivdVHS0Xf0RpbeLBgTDBsdRqyQphrOCQMsuI59px6yhWrxWmjoJPuVgKes-wCtejvq9v766GdMZKasvvC1VVQqNYUuWESvAVTW-trvxiODTNmcnR0OKhMfidRf2ehlPu4JQ1nPINOLNCEVwebV_spDriQdhp6BVeaJ1Dsp0YUFtUn1hPg24XBnXAin4Vd6u82f_Ie9xJW_SDvLJ7ekF6Us4jf9-AEMR-brU828uPF55GYoWEIT2-0GcNV-uSPmL0_usnkhvORxfv3IjUqrTVp1EUU6AJPz8ffYCYaZ5PzHrxYQhxTO8tS3-WcmAaF2y9DN9LhVi2YnLOCxJuKBHFIwH1Kx-jl16jpzfHgZ6wi17-Dr9_AWLvS3Y=))
- [Persisting L2 access](https://github.com/NVIDIA/cuCollections/blob/dev/examples/bloom_filter/persisting_l2_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJzVWAtv27YW_isHHtbZnS0_6tip2xjw0nYwkC5Zmr1wM8g0RUdEKFITqcRe2_--Q1KS5dgJdm8HXEwtYos8_M77QX9saKY1V1I3Jv_52OBRY9JvNwSRNzm5YY1Jg-YRabQbWuUZte_d59cSnsOHize_dt5xwU5Vusn4TWyu2NpMoHqFJm3BoDcYteGHn-dv5jM4Pb-8OL-cXc3Pf4BnMHv3bn42n129_RDATAhwhzRkTLPsjkXBlssZp0xq1plHTBq-4iybwCwlNGadQdCzdN1reS2_4pKKPGLwmuZUdZdCqSRccWFYFtA8nu5RRMwQLrosy1QWxGk63UUxcZZrg1R3yD-8Y9RYsukBEs3-yJmkzO3usNEmithq-nCNS-Mo8RMSwmXzTvGodS0_ojLQfW4tDKj9Vcw1sDVJUsFAx-peA_4Bo4BmjBgGBL6zWoLXEkxMLF52q4GjKf1q515lERBK0c1MA9EFeMoyzbXh8ga4hLMBEBmV8IUTuvbTICwDqjJ8SZWM7AGkxo0O0Rw1uucmdjSnP72ZFeBZjp5KGMwu5oFfqlRisLioWJ8NZk6wE5PlbAGpEpxuICUZSZjVKCG3KPPCumsyqXt0ASzhxirR8aqhTPuKURskEKOZ0RoqgxuhlkR0EpaobFNazdpHB06ygn-kkKlUprSDxyngKcHQ42YDy421MhOrV0DSFA8SY9PIOioXUXWW1ATq7BhuyVAmZk1XQDtndgqx0pjowrgLm4NvXBx-YOaMo-ZNu-S-1Y15auX8wP9kbQiCoLVwPnVO3LeN4NKGwwp53RO0QI3VqVlf2kN70M3WYtedP2krP0apkmID9zGTLhIKFVY2CrlfqtTuog1KG7YBnVKdumUb0AYjO4G4ClMmVX4Tg1CUCGt1F-OFGiwqORXKoDUzlmusHjBf1SVBCZOcIgzJbnyi2JBvl9GKZsIsqnKE4i5VGMEyJwL1simFC-jUgo-uGbKNaBnRPgVq9s3YDYZDycI6QgvMrlxmTBAr-i3LJBMabKqIh6d95HJfD82u0Ytyenn1K1xcnsOo1-th6BB6e8-wjr4n686P8IvCKmBcRMLbiNvPNvQHx_Cef2c1x8rce4--SXODUcwSPdlhUZhNYyjBJyBR1AasYyQXpnytyYoO_eTshZVM1wm3azvUBY_O9kHazuOvjy8eJPRPwWQ0dBq75xMMg-PjHiS6eH0RDHtH5WtJMwiGw-HOolsbjHGtAEWMGuhxMBiP6qAvtjy2jMe90T7o8MUW9OWoDtrvB71eKYaTdDzaBz0e70t6ND7agpYeLzYHwag3qEBfBr2X44egR8HR8OgB6FHwYtyvQF2zBci19SbmbGg2KYMTDCbzym_Ztoa-xwRdpxnIPAmRTCNJv_cNBmtB1e3C6cE2VlRhV492w6wo9UySpbBJ7hok_ncFBlsG1l6CshBdFlXkUYajR21jP6UsNUVxkEQcakeLWgtC-IXrTsFWa4_lFd95TmC_VYWe-nVpKl8S_vfHc1ivsUbG4WhY4U6_FHj4pQDH_36A_v8d4ItVWBGhvzjI_hEQmzbTVzYLu6_h4qlMtoxIbgfbqmwsN4bpEPM_xGSit5hathupVbOWfJOJHd7c15adbh7u1M7XSpOf6BHQViLAsfX0PLSza3h1-Zubq75nxk9bzWeettWqHU_IOtyWpVAMQtesQ9csHwf1iAg9Mybjy9ywpjfvs6cA21CctaewtT8y7T0Qs15a63cDRWmecpxgjntfg_ITEnLnSZ6AztNUZXYweWRetYMOK-HL6bYYz3bLtB21Hb-CdzHoCpJLGluanUG3mIMOxQCaAtmHjn24ygh18wzaODh-tUsOxk52piy53hfevm4MomhTbV7j3WsysZuhmTYPoz9_0sGtJ737t6fzfWkr39V00vmyILHN84CG3YdZsvW_a42Fhf2V8NDlx18OhSI4_9sRlRiVcPpgwu1U-cq8l_Z73La5FZtsbfCyvmNvH8qTCY7LjEShpiploQ_cdj11p95tHvhjzQafC-38rXsy2bmZb9ugnUl0s5w6vMPKI-VNvWm3giWO6LLZarsTAZOR_d6vJdFcYpQbwEuAI7Hpr2rXCmeM4isOxY-Ctp4UfKmUmNqEwimlErvtK3BNlh9zlm22k45Dr_EvZ-0nNPMsyr0a9FsUx-zfDbWq3Vbs3ypX8Ybs7sdcxizDazimmChuyZYL5pOkm-BwpjxxuayJdMkEI-5yyR6rR4_g_5eZ2Ku4ZszkmXT1-_O1bLQbVCUpF3is-mWsIe8o7Q-O8j5uq9T4n80aHQzzE_rtt_0xdEhG4xOdhOMeXk2wiJmOS4WIRR1BkqX7LU3wZQ2TUipw8c7KpyQuYNuUt43P7XIfE2pnH8On8fl39-8vIiINfw==))
### roaring_bitmap
`cuco::experimental::roaring_bitmap` implements a Roaring bitmap following the [Roaring bitmap format specification](https://github.com/RoaringBitmap/RoaringFormatSpec).
#### Examples:
- [Host-bulk APIs](https://github.com/NVIDIA/cuCollections/blob/dev/examples/roaring_bitmap/host_bulk_example.cu) (see [live example in godbolt](https://godbolt.org/clientstate/eJy9WAtPGzkQ_itzi1RtIMmGlEcbHteUlCq6HlSUe0hQrZxdJ7GyWW9tL5BD_Pcb2_uEpdDHXZDIrj3-5uFvxuPcOpJKyXgsncHFrcNCZ7DZdiISz1Iyo87ACdKQOG1H8lQE-t1bv4xhHT59HP3dOWYRPeLJSrDZXJ3TGzWA4hXcoAX9Xn-7g_922nDy53g0HsLR6dnH07Ph-fj0BF7A8Ph4_GE8PH_3qQvDKAKzUoKgkoorGnZLVR9YQGNJO-OQxopNGRUDGCYkmNNOv9vTct5lfBmvsTiI0pDCfpAG3BOcCBbP_AlTS5J0g3R--EAmVSxiauUpQZiS3XmSHN5HCoknVegF-C-k08NHJ1msmifVKqG-VVATUHORSuWF9Ard869ooLjozptEIj5jAYmaJ9OYXVEhSVSFqMpNcaPkSiq6rC2fSiUoqY8x3jCIQxjG2pDVZPR465YTb7QamCOAP0mjhU9vyDKJKIbdTk8Eo1MY0SWyDYOhqIRUIsuAT0HNKdR3Cy4djXLpQMT5Ik0MMAw_jqWhhYEcx7iQScg0wTVFYRKCuubwst9BILBgEkgcAo8p7GxVhsFNuFBkgkunXCyJasFU8KW2xuBfnFmT3hrpYyPyKaHBZ3euVCIHnjdjap5OugFfejXZ_K1c00JaJ1wyjNpKW2MUIH-DBTDrv3Y3dxb9RHmViliauYALgRHXqZFGSFM4IUsardraZQykMkJTHkX8GrWC2fCBUdGBC-vsNZrKUyXSWHYnLDaTro1S63sc8iYRn3jbm7u7JHztaSNCoojXqKz10JT_z44HRuSbnjFtZ6u0w9LjJ9qxs-U1qmsVJH4Tc0XhvMpjQb-kDLfabv2SLDBHEoVVGjqjoz-OTv3R6V8nH06HI__sdHg2PnnvYwk9Hw3PhwdYVxWHCQVJVZEoWBsx95MIcw6LBhajGNkDv9HVOT5jDk84jywXXbR6MLD5jqTDRH2R5YqvOeUnRM3R9FtEBZKiphmNqc5lf0FXEg7g4rPbgs4h2NI0GNRq236uEgwAaOYbJfQmEXhiYL3UytECJn2JNvpX-ZI2VGZTrLQv-746bOVAAJ4HR1i40MMvKcUUM_ZgVtvUKshwi6y8yxlR5kkO8dPod_ZuOPr9XXcZrumhjh7L1RgXsoA0OWVM38ultQtugxgsMNq9Pfzah82e_ujnjQPzUokLGLhuksq5PyG4w4tWgX1XU4LABrRE28cT3D5vbCy-hvkSefwk7m4F99XzcJswbVl8hGBN8XQN6ITOWOy22lYFjUO3lYPfAY0k_REy7mx9Axkb64Gh4n_BRCxAJRcfqLaF7ylaGveepqUWs7S8MdubRpHdbXx_nb9_x44_pWtY17XZ-wFd90R6N_0MrZRtFNmuiTxqMbNJy-4ZynTi9jXEV8zt3bzKFsAGsB_MDLOlz82M25IjRLHAJxIbdOXq_lmrwfNEt-X-lKBwUePb2MFlz7BEg_ShVBQvjE9uxaVTupJ5cHuX69df-kV_Y1KcoiqTKfrd5mbWxJpR9_5R1c6EuBwMkOpErKwuTHX3Fy3VxdzmCIou516aFQEVAvb30YVjgmKhPlS1HA7o4ft69JhZh5GIMtszX0xQzNBd4cZ7qoy9INk_tDhKDZoeQY4YsLJtt89m8oGPrTI8eIfiga46pldeYqeNtad-BhbRy1lSXh5M556wOKZhA2kmK4Xn9iSdTqlwC2sqys8odt7GK9xYnmnXcybOuEehKyhOUZFgaPyASLUfzIlYP3RzWwS59hNuZMy8a9V1dR3DHUKK1hRn0EHEJXUrlmSlN7tPFI5nnX0RAUtfrPZUsCXyl0RoQe0OUvYr9XHX7vBzzd6rbLztlqrHgkswoSV2y1GoUwSPIEUY7gGGsbJvrYImWaNVa7wavCdg91AzV-I3tXcse3-oEqBeJnQreFgaYSuE4Z2OvuZyRdVbvLF0shtLxSMyw7XZncRar-XvX8atCvloDWqXVuTTVS_zm5OOnlZkNYtHA6jXmT4XF_ilzEERBz3Op-4DpVU7MsOwPlS6A_OThFrd3llOZnlfU4MTJvt1K7QkGtX00GtsGuKV2LT0eSevu3h_ND4rKly1GQdNKT9kAu1uXLVXuCnTIKBSQv1zYNv85j6pAN_AMtd8kcuLdY7-4rsAvxXNHlZ1tOZLnJNTxFZxtNxW8UzDIKvftqJhmEiUzIkZyUy4V8grG5pL_Ao9GMAmTq7pw7FUVhwZzXe5xv3KLmvIAsNGrBwMy4COUf3ed-mUbUH2uXSecRls3V_44KDKvLP-xCGbGqo6bQc7zgQrpSh_GXTiqyDY7G-nmzhtDcNJp4OAB8HGxuYudIgI5gdy6e_2oNPB0qrwn9LtQdiJyHJifkuM2KSCGQRBhIP6DEI8HNBcWzh37Xweq3RtHuuVc_fZ_P0LZpjzEQ==))