# 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-03-21
## 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/eJx9VgtvIjcQ_ivTraqSu-UVKTqJPFSapCq6EzmF3J1OpSLGa1grxqZ-wFHEf--MvcvjHk0kYD3jmW9mvs_rbeaEc9Jol_X-2mayyHrdPFNMzwObi6yX8VCwLM-cCZbTc_vVWMMruDXLjZXz0kODn8F55_y8iR8XOQw_Du4Gfbh9eHz_8Nh_GjwMW7QhbnonudBOFBB0ISz4UkB_yTh-VZYcPgpLaOC81YEGOYyzyjbOzi5jlI0JsGAb0MZDcALDSAczqQSIL1wsPUgN3CyWSjLNBaylL2OqKk6EA5-rIGbqGfoz3LHEp9mxJzC_h05_pffLXru9Xq9bLMJuGTtvq-Ts2u8Gt_fD0X0Toe-3fdAK2wtW_BOkxcKnG2BLRMbZFPEqtgZjgc2tQJs3hHxtpZd6noMzM79mVsQ4hXTeymnwJ82rcWL9xw7YPqaxcf0RDEbjDH7vjwajPMb5NHj68-HDE3zqPz72h0-D-xE8POKwhncDGhU-_QH94Wd4Oxje5SCwdZhKfFlaqgKhSmqrKFIPR0KcwJiZBMstBZczyaGmEczNSliNZcFS2IVMhEOQRYyj5EJ65uPaN8XFVO2xHuufpeYqFAKueOCm7WgLnzjhWzyUN197FAw9ivYsaE6Rmbo5tvvSBufbhVhhlslKcG9sq_yeizJznJb6vtHhXAWSrPV1fmlwHIItTjbFOl30bL9K_Pgt8rZE78k0qJeJ-MKwwwIrSuaplWIGd2KBvfGWeYEdctTRiqmHJuC8KQKOm6JB__3AHYT3hK5kjcuApEKOqA3SbWUSE2fWLGLAuBkHE50CaZWmWhiancHhVWNS8kXAs8T5WP-MxIhZnrnRpCb3HCkIhApxvojNAQpOUmqP0pO6sTKyOBvrLa5jKsrwVmzgGmH5S2oSQLsN94ul34BTxifgVhAZhfZJTfTbrvD3OKNFqYXCFqyYCsK1qG7kZXoCV5qgcBN2TSicOG5ygZdVHl8yTx3Ac0UgWcFwHiwJEo8b-l4GDwXzjCqJODmNhKQBgiBOsMxJDQGLaHYPNQzDYkohUy9I6AgiNU-QBHCMRa_n5L9i4o_i6rCYxA3XcNH5tdPpHCLe4vmGWgdOB5HEBk2Zq5SPvr-AMgwnx4jWtIMFzHkITNZJsmLsTuvi8rsgDtGvk5ELqRp7VO3jOGfH2IirgdPAIgfiCYzdVYJh0Oc66nM11TT6ZheYixSM7UydqvsZm06qR4B7xl_hFG4owbaOmFc--4Fsvx3NbneEFCWKTSSUScf7EW07OXRzOM-h1cpB7mhD0nyvd3JoJBC0Z9-Y-Jrae9ehG1EGUzFH4p_lSRRCF_S7c9S8QWQFdk6phATFYJIymSup2jgqPPQSf34Y9ijmCHHSmUFKRr0E5X9cztQYdYOeeA6fFFR3rBT8BeTsgI80WekeCYh6icfSAWZ9JvxP_TFbbTpKhncBOdskZe7zlWyFZ5kQOm0jV8JcMRbdIuRJNCJv6yrJYGaNk1R15goGvTOIX0h0WRBb_Ga7q-FgyY3T4GewrVRh8Gi4usITaBQ4xxflT_BHzF5jbo0xRnYJuxTKCh-sBlIzruDdii4r-BqwhytYplecd88vQhfNZunT_SxrYr5r_vp19w00meXltVtM3nSg2URVe_zwWIkomootpvHSpuT0KCbnXOHiKt2wcAFFql-yXV7bUTsndmRGtvs7_v8HAzB-mg==))
- [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/eJztWG1v4zYS_itTFcU5G_klQfdaeJPgfMkWNVokRZJtUdSFSlO0xYssqiJlxw3y3-8ZUrLsTbZov9ynS4DEEofPPPPCmaGfIqus1aaw0fiXp0in0fgkjnJRLGuxVNE4knUqojiypq4kPw_fzAp6Q5em3FZ6mTnqySM6HZ2e9vHnbUzXP06vphO6vLn94eZ2cj-9uR7wBr_pey1VYVVKdZGqilymaFIKiX_NSkw_qorZ0OlgRD0WmEXN2iw6eudRtqamldhSYRzVVgFGW1roXJF6lKp0pAuSZlXmWhRS0Ua7zKtqcDwd-rkBMXMnIC-wo8TTYl-ShNtR55_MuXI8HG42m4HwtAemWg7zIGyH308v31_fve-D-m7bhyKHe6lSv9e6guHzLYkSzKSYg28uNmQqEstKYc0ZZr6ptNPFMiZrFm4jKuVxUm1dpee1O3BeyxP27wvAfaKA4yZ3NL2bRfTvyd30LvY4P03vv735cE8_TW5vJ9f30_d3dHOLYF1fTTlUePqGJtc_03fT66uYFFwHVeqxrNgKUNXsVpUGH94pdUBjYQItWyqpF1pSm0a0NGtVFTCLSlWtdEg4kEw9Tq5X2gnn370wzqsazopZ8bkuZF6nis5kLc3Q8haZWOUGss4uPpZIBSTS4aIuJCOL_GJ_3WVVbd0wVWtoSdZKOlMNstdEcrNEtPLXFy3iqpBkgxf6jYGlILhWybIydWlfioBeqhYHsNogikqsvOjwTcihf_ncbqhWaqEqVpmoR4FgKBgfpOaVVgu6Uiu40UG1gjMtO79J6s5fDVbfauic_DC13QndEyors4YAwoSTVvTNxsdvp582mZYZSWTaXPE5bBLYwWzp_KnziKxamoJPGQK7qMzKryHTAwsspntBHg6BYVXloJZZgPyD2loGNniVCZv597VlNqbg_TtXk3e1z0OF80lO2IcZGMFP8Aeiti1VIVYKmetu1SKm3YtpUdZuytyRCPB-kixzMxd5ktDa6JQkom1WyX5YA81egGJO8SGK541j7NLx2Oo_VOKoOJoVTzCVWKdFCQH7JZ3Ty2x5x74gdpx1fPxI1LBfLhNGwo6gdTxu3jTiXshxtgBzOR7zxzQpReU0n4GzRjoOixkyLU3muZEPF73wRttk_3Xv6KhBhvv_-SUs8IQoB9-E603Kmpb4f6VXg0dE228LD0PqyHUAOn2kw59z6u3taiCm6SMejimw8U9HB4iMiQyEqT2GPINvybuWOBSDJjjsgJje9HwKHbNybxFL8a7j831T_MLzrHhm9L-dNHvvb2r3F7PJHwv793Io_ggf6Y6i-f_M-h9k1tyYvCEKe9qqlkKR70JtOP8s6xbklweNMypRwBd0fk4jaAmh_AUbfgXmvop3nJh_IW3hDIw1uuhxnrU5EWrld2rLoIVrbESlfb8q3ZZsbhyqfKVQ3LnRq8KFSYU_V2t8nkX8EjxyTBNrkdfKDug-w3LzRDYzdZ5yJ7AqRzfFJlvLrNHjMuG4EWBmUxgEyEhZVzzsYJTj_8hmSoUT3AY8zy47FVNM4MmkpQAj-iedDdf1as6QTZ9AmoJEOP6Kx4uDw9PhFvUq8RvO6e3oH6PRqEO8xOyIOQqtDedIw0FzYZupCrJfwPcipYXgkWF3NDpgXk3CKrBHg7fvXiXRoZ-HRal03tuxGu7jHO1z4-ZeSw5Y1wz9iAsX50oAeRa12IhWCG7IgP4JCesbsvcqO4xar3rX81wFmrsZ4AyxuGANTy1i3MjswvL0MkDPz3t8keVwJffyMCntAvU0iukkptOYBoOYtE_vMFWNxwdjWSDBe3buCaeplW6h_XkbzNUS6X8U-x0DVaT8ebTnwmkYL9gNC13BX5nIF-2Q1M0afmRSzgevayivqGiecND3onf6ukKrEPx0p9ELh9iIpinQ5YerCRaqLiafmDzOzs5OTr-GE0-_vri46HW9DyNaL0QpCP450fhTtO_gex4feZpCJahz9-kQcWG8CNXrIEhtFmRKPnDtE3kejOZqU5gNdTUU1aBx-YCujVOhaGwUlcJysneDp18QOdfPLZ-BXZFR9Ftbg3-j4C5M9bso0FJhBBV53LjcbQxfaVbGV74W3cz_o_h4tSnADb2bX3HBakdbBhW4dy38TtdOq61ey7tQ5ngt3_IVja82C2_rXGVirTtu93yDTQ3qKN9p-YIIw4BK4CnDHYvJhqxgSS_Hd6pclIdZEsz_KDcOs6IV-igvukSIQyTbhb1A4nauF9s2Ak0sYYuCSaoI21h0r1FCzIMmfhHVrs0gXjCL3oGqVnNzbPkWx_UI5RGNDtXFbZ-ed4MDWukhOHfQUEsNwnR2hkp4V0uJq-tn9I3X3nIezIAR-abKUJVydVUQ9wC8ieKIvz5Al666L0WiYi3lyenb-gTLpnThG5OoD33n8vj45Cvqi0pm53aVfDWifh-9wOGPgyUq7ediNfdfo-R6vocppczxch2-88ALlPbiIXqO23XE62Adpy56_tX__hezoiBz))
- [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/eJzNWQtvGkkS_iu9nHTCNgbjXC5ZbKP12U4ObWTnYmdXq3U028w00Od5sN09YBbx3--rfgzDI1Fy2pOOCBNmqquqv_rq0cOyoYXWssh1o_frsiGTRq_baqQ8H5d8LBq9RlwmvNFq6KJUMX3vHD7m7JBdFdOFkuOJYc34gJ2enL44xp-XLXb70-B6cMmu7j68v_tw-TC4u23TArvonYxFrkXCyjwRipmJYJdTHuPD32mxn4Qib9hp-4Q1SeCx4e89Ng7OrJZFUbKML1heGFZqATVSs5FMBRPPsZgaJnMWF9k0lTyPBZtLM7GmvB7rDvvFKymGhkOeY8UU30Z1ScZN5Tq9JsZMe53OfD5vc-t2u1DjTuqEdefd4Orm9v7mGK5Xyz7mKeBlSvxeSoWNDxeMT-FZzIfwN-VzVijGx0rgninI87mSRubjFtPFyMy5ElZPIrVRcliaDfCCn9h_XQDw8RzAXd6zwf1jg_3j8n5w37J6fh48_PPu4wP7-fLDh8vbh8HNPbv7gGDdXg8oVPj2hl3e_sJ-HNxet5gAdDAlnqeKdgFXJcEqEofhvRAbbowK55aeiliOZMwCjdi4mAmVY1tsKlQmHeHgZGL1pDKThht7bWdz1lTnMX_M_yLzOC0Twc7jMi46mpbEkRYmUmLUjstJf1sq4ZBKOlwpvujvvTUq85gM83TjvpmoUptOImZwIpqJ2BSqPdkngqCWsdh_T8c8b-94VRTAAK7PRDRWRTnVOyI8HRdgwSTb9Bn-JmK0cU0WiLrgm4J5mQklY6u0c-h4-IPND78fXQ6Bmo7EM0c4BaBzMkMlxYhdiwyBMHBRaDYp5sRLSrMiF2xYpk8Ma5kGIBRY3IvhgBEsK1MjoY157RRdijZIkVn1Mk_kTCYlT5lHgOI9k9y7dawlvEco2eX7gV4XjYcC8gYU-QNG4JtawB3YBj0t0XiaLth8InLo4SlxzGY8SAv6AGWWcMMZpIrY2rSOBW-thQnXE3K5hTIwVRyEiOGkLtLSyst8VqQzgCGAVrEgC5xpfKQBEA8G8X8scrs3CHkgXK48UJESxPTcAksMzynraZEWU64siG5_W87SvqoLJC9QfFCwcipdQrWtcmsFhGND1K14IsXMlZuSPLXmUirXc2GLdl7kx8XcZiQhbhZTsUb8B1RW4T12FKEKQ4aTihvkyrRU0wKVD9RIF202MCRGVVnmRiCPbUnTlkIwn4GrVr0nBc8Nm6MCQyYprEQwVvF_nfu8JKaRbSpGLB5HmvhArwv2-gwfnU7nnKHvfLzGn3WOsbeUY1TYX8MGqJposjgBrtQwCEgXpx0bwzJ-Qm2xdi5Yt7JxW2ZDlChohGxcKiWwEZ0WoLzTamG3mp3BHc23bP2C5pOzHc0iFRnUatcTtFDGEuH3UqgFweGC-iQWEUUOSoB40PKjWNh4BqmpKob4jDQaVib8AgDLqIr2esgYwVXkpc49stQt9r_cKhQijhSKKHWiUETPg0P9fnDmgawRU1WRanb1lo0Vz8uUI7yLz5r46pc1YeuM8565PbKm29SfZCAon7V1G1QtqXPTvnHtABW203G7RNhsNajlqi8MIRL-a4iZQzLQzN2rIGzV-dc_c3be7c_gUH9CJm_bw_Vgkz5yDojqvvR6QeIsLK2WhFdwd7Prrt39VqypA_d6LkFATeRr5NrAf6kJzbHXw5TF08gUayJ-s7Y92fLNOrZxr7LhHp1zHSQX03tX82yT2pvtkQcmiuoFcL1pO93UeHPbd8ou2LLbYi9aDEP5qxb7vsW6-N7FhS6udHGp-_3KE-smm5qFL2IYOeEkTXyoQK6Y0f8V9ZPHBl1EcqUYK2c8LYWm7oPb_huV-zJNqAlpFLGYFOgynjgzZsINVXrM7mhPqHQx6icNvRjp6XNaGus76n5V29Z7FuRkRDeCE9jjcfdsY85xM8zAoghvauCiRBbVcFI1xto4xuw4VnXBG6rgu53EjTuaSWhB_nmNNmDSW_3t9re65VpjpTafMZ88mr0vqFMqijv1PxtJqiNeZzH8NxDUvglG0TgthuB3xGaFDNaagWSHlVoUpSVRlvJc45wCDMeUvzuDp0WOsXV3YoamRIiOkZr4bxLBYSNtbQ-Nwd10eTtEpXvqN90VqaP65eaBPa6B-OwtDYxuS00MEVdvD2gYFM9bxmXyDNtNu_paZu1nIGa_DJJnfDny7dR-O2CdMATUd6H4PJQmSsQLdtiswD4iA84nK-vwq8Qv6ovbSqAKJJFDrFC66aqfW3PgTWJrjmg24tSzDSZayzN7DMJ-7SiKtucW0iIao5qQYRIm0folQ-PHx9HRAVu6SrPpWdsHmgLSsoT6VX5y-1g95qs97L9MU68D2We57-fCUVG6I9eXCK6EDYcqQb1tlhNQQ67dGdPu0bceS2wBLq9PdUhwHAKRKfyL7vyPsmOE8P3f58YW-f9U9n-R-4TOtzGfVtR4_0FojH84D2DcpzIqR4h79fxkM9r-UBDIx6JIT9BkEoSK8kBZVdY3aGnWtskukCHICi_i8mXlVSwwc7p5vhn8-orUguv_ora6maAb_jrBWmis49BYB61t-bUnJT06caES2s4uGpgcwX2Rr_GAMVNkMr5Tzb-6nbbYoTP63cVOwn9u85_BrvJp4JzxUCImGt6n7KS1Jz9pBKiSkzndIQY-JFMFoEfNx8Z9GcdC6-_YG-vxhrJwjGk_wsfGgQ9eqFoUqQwn2GZISni5PgKFTo0woFS4rptsJo2dCvIyo0PU30OzuVkf6ewDvglHZeMskaORsEc1ehYntB1MkD97NLrFNru0OynRSFdNWva_dDNCnGC9vzwFiPX3i63337beLzfeq3oKY4qSSTDtrLqnT3Wz_aZjQ0247Ue0JhzaSAe3op4RkDhjR0eyIkddDT3iQFWMhhxVys_6Mddm03wYiF1pyPiTiJwS8YyDvznfN0TvTsXNOtBE8YOK5PTxuc2DHCNiBm0VhQ0z7UmtMGFuHclnxDCzz6aKDDOlCEvslGYKw1NCIRCNpt7KoMfLn-sjbdl1crbGsyZUA7WOIf1FhDYwrus7uqiLY-O-cHgnf5W0q0_2xFUtqgNDg_S-PVBS26MnqO3mbEZhDEW5woBYvN3bSF8EfZHTdBGk25YINXyv3NO-_Q_ASu0fcaMI-PytDOn1Idcye3389BBt-dDy7KKTTuTP1GBCdbJbrlrVKYgegRKvlnTh3n01y7xM06lRq9Uq1IZBjn4N6P_wD-CCP9VPBGMMABh2whmHSLF2G4NYWN7cPYsEjOq0rahezR9rIP1j0xpMX-LXTtLunO1rF5ab9GptbIIKfPMAFKvo9mnlCRic3KwCIdmDpaWLS4VALSS7qCBIy9q75uRqI9ndE3N6rlR74l7Dr2q8uhpqdqfw2pnLdkR79fz8nI69p6_7_X5zrcbj0B4LUzupvJHbLSwoo37_tapIXglTqtxWDmyx0WpQKcK4oNa_szXyWRx3T1-WXdymR9z2R7jGMShwER8ddV-xY67iyYXOolcn7PgYzckc2wqbiOQ45dnQ_jKXymFNZxzHKS7O3M9ouIBBPn9qrFrhPoK3cR-IN1af7L__ALzCdP8=))
- [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/eJyVWA1vGzcS_SvEHgrIqSzZwRUtFNk41fbhhOTsg-0kKKpiTXEpiefVUuVypaiG__u9GXK1K9nppQ7iRPyYGb55fDPUU1LqsjS2KJPBr0-JyZLBaTfJZTGv5Fwng0RVmUy6SWkrp-hz_82kEG_EhV1tnZkvvOioI_H25O3fj_Hrh664_jS-HI_Exc3tf25uR_fjm-sebeBNH4zSRakzURWZdsIvtBitpMI_caYrPmlH0Yi3vRPRoQWTJM5NkqN3bGVrK7GUW1FYL6pSw4wpxczkWugvSq-8MIVQdrnKjSyUFhvjF-wq2uFwxC_RiJ16ifUSO1b4NGuvFNLvQqefhferQb-_2Wx6ksPuWTfv52Fx2f8wvri6vrs6Rui7bR-LHPAKp3-vjMPBp1shV4hMySnizeVGWCfk3GnMeUuRb5zxpph3RWlnfiOdZjuZKb0z08rvgVfHifO3FwA-WQC40Z0Y300S8fPobnzXZTufx_f_uvl4Lz6Pbm9H1_fjqztxc4tkXV-OKVX49E8xuv5FvB9fX3aFBnRwpb-sHJ0CoRqCVWcBwzut98KY2RBWudLKzIwSNY3E3K61K3AssdJuaQLhEGTGdnKzNF56HntxOHbVnxST4m-mUHmVaTFUlbL9kraotNS-p6rF-eGKTGJF1p9VhSLLMj9cYS1igYm1TufOVquyF4z034TU_YMpVS6Qgixd6qV121R_kQBAw2FYMnVGz8QlJgvAL73GAUo6cCRSEyOlNtgSwVZzLq9hE3sRUy4B8532t3qGWNJ0ntupzNNUrK3JsB9byVj6CDR13vHblS7kUsctg4H-4nXhUxoXa5mbLA0jlPz_90OgwsJy5bewvx2-MI5BtnwudosQTAG26vxoUjyRj35ffAYRjCu9kHluFZ2LkWifHbhYRzDVjHnAoR560cA9AxcWgNl0lZ0h1QCoysLfvLJVKaaVetS-pNEyt77sxu2bhVELdr5h-2utYMz8AQO5lVnJbtI0JjYVL84J4CodMGTDv7aR7PFs5-i3d5Q6dniNma7YaAoOLKiU5zNJ5SuZ705ip_9FIGLm7JKnHe6-dE4yEYSscPvrpWe7UOJI6vSMA-rsJTWEx6rIceDAFAXuvkEgEkjt0Nctz9Foyy9ma5-dl7ntiqfn5m_cfdScn_KlKuewHPadlpC5XNlH0RcX96PGDcODKase4e7l_RsMSMnTYCLldZ2Wm3EBYcTx_9A7_GrAqpKkBSmP_ku6bbSIjXAEJBNmZ6HDEzvk7raFWjhb1LZDjAh5KR-BV-VAxHov65RYSCo5hSkXQQyjpxKGOgfQMLfr9GcWEkGFC6yOpUkWW9GolPHbXnOFFnKtKQ5oS1GCzEthSEkwImsX0bBfSI9IVyvrcCfoELVN4kRB9aXDoNCNkhDrB3BEO_9w1CQojBDZkB8CzOmpKbI0JMq6shM0IqxrHfMKxbBOfZhEBjiMMJSFmCMT2eFX1SXSBB8RREA1MgIYBEJEtjO3cWoz45ZgI4l_llsClPN5WlI6LVcw_CpQFtFf0Moa1dA86DYVa1BRrkgsgo5TexHB7ArT071uPGVHoU4j0hBUA18vTsepr7BMebnPMSJw2CliQFQROdo_49q-CNUwoD0Bh02oQwikZGGYkuaixqLnoLYnXBxWYFJWDJUPu7MyDxWg9zUsEkTagL7Fsd1wNY_km8oytB1sqcHh4YCWLSfoVGAIilzMtYvmm3WRm3VFuBh9uhrdD4gatdBQ7pCcPWfoJxoXYciEjgLwUfOlgaWx7lCS2ltAulYev3IB6g2t5F7UcFMSX8DN9JiJTrj5jbde_YGpciSeBEpd4WedSXJ1e3tzOxDvcQ--y1gygiV4TCLpxPOkeKYIsAU0MkWH2oS6FIfcvud7hAX7ojRJWOfRHNYqT1BJNKo4-xpYcZnb61vxAOD2Ty-xg7nZ2ykzAcZ8cNiCPlSvA69gMxjCfz7-zOsP2wwEeB7yQG3mK63F0_Hpc83yzyaDYiLvh0VdZJXj9tJZZGx-kGG2HPqFoApn4rQ2edFcfsF1SNCKV_bXihL2xt3_xr1cVktRVMspdKbuRer6U6sd3X5uBQ_6oIhvEGy2DpdT1i90PdR_erOkVs4ZejDUtiKG3AUMDXUCpycnJ-eEMhkE5DqIwEMTPnFE0bMFFYbOgA3vHhqetDvHs685qDG75AvFQUfARQm9WYYAg8E4kYaJfcM5dkuXxiXDiGw3zuK6yir3KWrsIq3FiHly3gAPacqaKKiDYQ9zpDFAv5IO5cXjOSnkFHreCo066L14mjad3HxLs4yfFmLfuIMeJdTkcDUr8eDUocv5S9vxqEFmfkdrmXrLqHzj9lcS8s2OWfTgPo09vXV_xXMNMjdrw9Y9PD9_Ub5INfECpNtIWWzVGsilhvTjRc-5a9rZmPvm-YBrYMKV4pUbzdUiXsnwdKLLsXFyRZJHjeTereS2XEjSw4eGGg8HDKp7crBo18zUzBoM6tlhi7MXwIEk1JaabDeaQaeEaq7RYHJ5cNByetmEiHe3lqV075hNj2eo-aVOgntj8EOX9FXAbm-HLvARl0godOWC6QKw45XumhrMD4zI7ddUtP0AEWch_yG_1Mek7enha4z7MzJ0Wlfq6blVXD9InHPRTl_onAUlg0SyfnXsuv2Dl_KwnbDz4XB4CkV7-9M5fO6_qF552b4LVSuTl6hqSre6OO6-UICTbhLl2jXfoiXFWqnTtz9Up5i2Kx--YkuOcX_P1Pffn_4ojqVTi7Nymf54Io6Pga4_5jAynR3ncjnl791yM23ZVErlGFyHL8kwgOdm8Zg8d-t5gLs3n-l18vwb__kfZVnMsw==))
- [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/eJy1WQ1v20YS_SsDHe4iJZRkKck1UGyjOqdFjRb2IXZaFLYhr8iVRITkqsulFJ3g_35vZknqw3KdHnIOHIvk7OybmTcfS60buc7z2GR5Y3CzbsRRY9ALGonKpoWa6sagERaRagSN3BQ25Ovuy9uMXtKZma9sPJ05aoYt6h_13wR08ev5h_MhnV1-_Pflx-H1-eVFh2VF_pc41FmuIyqySFtyM03DuQrxp3wS0K_aMhDqd46oyQK3jfLZbaP1XrSsTEGpWlFmHBW5hpo4p0mcaNJfQj13FGcUmnSexCoLNS1jN5OtSj0Ch34vlZixU5BXWDHH1WRbkpSrofPPzLn5oNtdLpcdJbA7xk67iRfOu7-cn_1wcfVDG9DrZZ-yBJ4lq_8oYgvDxytScyAL1Rh4E7UkY0lNrcYzZxj50sYuzqYB5Wbilspq0RPFubPxuHA7zqtwwv5tAbhPZXDc8IrOr24b9K_h1flVIHp-O7_-6fLTNf02_PhxeHF9_sMVXX5EsC4-nHOocPUjDS9-p5_PLz4EpOE6bKW_zC1bAagxu1VH3odXWu_AmBgPK5_rMJ7EIVUMoqlZaJvBLJprm8aeawAZiZ4kTmOnnNx7ZJxs1b3NbrO_xVmYFJGm47AITTfnJeEo164TFrPTfYlIQSLqKmvV6vTgI1fME73zyM1skbtupBfYe7TQoTO2s686NvC0Vqnc7r70cf5e-JcitjBy5Di6I_1FwVsa6Go6fD-2sZ7QB53CVmeV0znNzJJDz0yeqXxGMIgUnEOJMZ-LOYmyipkG6RZnKqFIOVWrvWeH3PvlIp5TXoQzViOPBoONs-45jLt3AfseC-ZzYx3Ik6zoTfcdqOo0fdar3Af7mrNsEylSNgbpaaxDxdAPQLAamljSmRRkOENKgs7tYRa1r5ZqTs2z4VVLdBuwoow_cwibIhNybf2tJm79UWh4Lm8FTBrxxEzZiNODMqxc8FalBXlpQlsMqDj2zl9iyw5dG9KZeLUymndNlJ1q2TwPoEJzolqDNOf04tzkYKY6c5VBiQk_V7b6SuHZX-YtJRqwOvSTWeKDDXydqpUuTZFEkFGS-IqrmUCCK4AmldIV6RBMg3ejAplm6i1mqLlki8zFqUbhyh3T4zGqTeEdRlHMzlRJsgoOxYpDiCggWFHEuc6pCvZ4R0MsNEkSS2HGU5MUQoFUu5mJtuhRG1fWO9FrxXt4sIiRPgr8Bu5MJ1CuuFZHKIacB0VWcGvIE4MQohDy3hXLCclShK6wGtFjH1c6FioppP4pBqbtAhr8PdGeIp1BUco4AsRVjONXKgck2J526MI4XfpWEAnz4ICSdytxxoE9uVZNcAtlXc_UIkax8H4IUX7H9QacY776aqmMHARazrRHEWfzwomh5FZz0SvNS38RqkfaccXMPAZsHUcHkIA8lZsU92MwCBSMNgQQWLnUI6iPmFpbJQjGVTFlLnoKMDrpLXnBeb5CLBnETo3KRDnH0KJYCid8CSyrFrQ9qloD30_bEkjOttLjcGMZmA0xifNIKAIIh0ogSX3vVCo_CcT7du_el9DHnsrVRNdFS4VhyfV7VnbT7t3ds1CciaNrtWegkUkFF9OZ48I1CiSHmFtJwBRcafghENftHvaLMbzCC23hZ9ur2WKsct-4S2M3kfsesdU-fmVDYYRcsDYhZMfPCzs3XJG5-nXo3JW8gEanQVQBk0uzgRNTFA1RX5cbR0uMQ5CJfMyqzVQyBWI3SzeNuG56vpt9QvTaVSbUfmFVlcluaWpr_UrH_krpmi63vCEJUO7iNHYHOdGUcTNTKHTX6Li-DlC6GvlN1hCvr5rX2BEiL4UaLRrQiD-s-b8HWj-wrMdOG_RnMx1-RsgnNUpPuoipE2KLOjTwSmxrNnqulroOcNI_qfby5iazXFif6IkDMUCKnGsiVOovu5K2lPTT9ROiVqMiZvQCPtEvKgtkqtmzwS_o8p_RqJxuRt5XPNvR2JikbMLGNltNUOZ1f-QYb0DVBSC1_BrWI46HO7vegaBJQm9I-w4puao8FKFUWcT0syCptImHNJ5PosFgqt3x0WlTQnkDRHctOjl5UsCKgO_6m5896d5z6np_SV3_OXX9v6Tu9XPqXu-o40MRCbdr-stT3H94_1y6SnWaFFlYFX9fex-V2U19kubsSfjNctkX1jqZ_eXXZPMWm1UB9Ac4LGAPEveSx0TZyw86k9hiWigpvM3gp4vtV3FWEPwPcXKxNBcZnmCNYMRCV6ObYu7N6F5A3h-IxzXPE2XXFKE_j8fCYLaQrSrX_8Mvw5AuXhPTQoNx5fgYx8sbHC3x4bHZfpEXCuigVO-x1E5KHFjS_4olT4F6Xa29Obr7U1wbwd7d10PbrOp_rfrXpeDd3S1i32ASMAc4zqmKsyYHo_I7uHo92x0c6lmxPLVgcs2qM041bPAIyT1_rpPEE7zgD7yQY86a_Uj3M_TtFBnBeFyUKRRQiMNWIF0i2BaTPnccmQKTWkBvPv1yevq-xHueqinXe95WxNC-_iOAZ8WUTZEn24akxuoKNpoOj-244kabItXy2I-TpfpNQ3liJuaXPkxUmGANT90y0G8dKXy9EJbTTPKQTnyYxTR_9j-GZ07X-45Z93pFQC_UCxzp0Hkfu2Td6wTUx-9r_L7pPDwEuwQ6VPj_35r7fdY8flrzW2j8J36_w--7b4r5G2ieqCT_Gnc8vN8LrbDupIxwh6-avhD7Vz2Dwc67Hok3Rb7P-DW-NNc5qHAI3ctAlfkeIzdwuC6z5r7OTtKZKXBgF1CL8u3WcmaS6vBnVTbV5SacvNWri_K9yfCqzg89mcRhrKUZKH9YKpPeZPKmrMzoocD0eV3iqTJTDkdyYD6YOFgeijakEKqFPzj7c9LWIYl1bfbYDJJoLG41gndGtdoTavdKH27FhTWN5s7isXd3h_9rtjqokmWERJoPmlyadt9hrf0N_YV74bHwgUM7cqdrCfhL6j8E3p1jrgJvj_5OiVEReMRhfoJ_W0QU7ZUt68dWPcnh-qc6k6wrS59f4rdNoF_ZEb87QCSPe8FmIhJ6nq53rzcbPDzJ1Xz_HP22ntT34uLXjGTNyRNJUgf-dH0UEAD2kYDIP598_D7WH-ibW8o6Y41-0OT3d1s3cS5ttlrb7Ciy-I9C-_03P88jaXLcW_vZv6VthL2gh9FhXMOAtdAjnFmaWyIVxkdqsiLdCdSJ7xH8yp1f0x3SEezvXVm5N0MhTta_5fDzAm8lD-SFPnLRlTWiitegGhdIxtKmwIwB6eg9_oiC9_TqVdzaGnQ_lgb7t1mEzVnj_isHL-7nP1_7brZsuInvNiMs_ymH3iM_uTSCBvfuONF28x1SI1uEYa__tujhsZk7_wVTow0fnISvXvW-o7ay4ewkT0ffHVG7jRLi2pLUkY7aiUrH8q1TEo-3dIZhmODmwn9PhBvoOtnnxkNQPUcW7TwHZRoPd_Lvv3bzBxQ=))
### `static_map`
`cuco::static_map` is a fixed-size hash table using open addressing with linear probing. 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/eJyNVw1v2zYQ_Ss3DcOcVv4K0BVw4mBe0mJGC6eI0xZFXSg0RdtEJFEjKaee4f--O5Ky5dTA2gKxTR7v3r17d5S2kRHGSFWYaPB1G8k0GvTjKGPFsmJLEQ0iXqUsiiOjKs3pd_fFrIAXcK3KjZbLlYUWP4Pz3nmvjX_-iGHyaXwzHsH17d2H27vR_fh20qED7tB7yUVhRApVkQoNdiVgVDKOH2Enhk9CExo47_SgRQazKOzNorML52WjKsjZBgploTIC3UgDC5kJEN-5KC3IArjKy0yyggt4knblQgU_Dg58CU7U3DK0Z3iixF-LpiUwu4dO_1bWloNu9-npqcMc7I7Sy27mjU33_fj6zWT6po3Q98c-FhnSC1r8U0mNic83wEpExtkc8WbsCZQGttQC96wi5E9aWlksYzBqYZ-YFs5PKo3Vcl7ZI_JqnJh_0wDpYwUSN5rCeDqL4K_RdDyNnZ_P4_u_bz_ew-fR3d1ocj9-M4XbOyzW5GZMpcJfb2E0-QLvxpObGARSh6HE91JTFghVEq0i9RxOhTiCsVAelikFlwvJoZYRLNVa6ALTglLoXHrBIcjU-clkLi2zbu2H5Fyo7qyYFb_KgmdVKuCSV1x1DR3hSc7KDq9WV88tUtaVVmhmlb5q7tiVroztpmKN_pO14GjQWZ0ywZqx7PSWwT2B4jq9azUrDJKRd36AlTN7fIQbm6ZicbQmFdZSsPxo0ZFknL_uCy-uP53oV2idzKvsMRHfGZZHIB1-e66lWMCNyJFYxGQF0muoHEHmBwZRLOQBtULeYPRhbA5de4-mtOuWARWJAss2qNW18jJeaJU7h-4wVtUZVdToJIlUUeFVScVwNc7kI2oWa6stasrFWMjC6xaMsITvUWwOEFz5ZWGxY2XRWiuZns2KLe5gEPL9TmywPYfo014cVj-xrBL7VVrvduFNXtoNmExZn4oWpG1RWN-c9F2v8fssokVZiAxJWZMn0yEmUOb-F5iVqjI8hDyKDGWEh0zFVyGOXTFLnOCYEqh9UJxXmvobpxd9lpWFlFlGOTr8nIpEnQaCICZIQFJDcNNnCO2-y87n9dzeoTqcCNYBzaTK5wTC8dp1plAyqQ0NnXldDEHtiKpIBwMj_xWJbQQpqpwgGXT8qvd7r9c7OL_GWYtzBzgNRYnszpkJUwhtf4NMMRQCo0ajE6zCmAfHtJv4XfTd67y6OAni4H3oN7mQWWuPqtv0c9bERtKvOFUbSOjuNphFtTcsrteCl0y77-RLH8Yp2nHbIK3m12nTp0Jeh0AjCRHvO8qpE_ao42Cwr-32xyrvjo1cwO2p4u52jQRxUCD31Dd-JNXN4xLxUiVTP5oGg6O5d4nCuwrFdzzuCXVX7f5Q7bvVMO3MxRKb8Sxunu-IIqWl3vH546BOv_uwHuJPBg6N-Dx0WD4O7pU5R8Ke80ETQQX9b7e9uIfMb_txHz86nQ5sZSx3u319vR1VOGWDQc4eUZP1gE_qK6YVyu1suKqoUMv97mVDzldbDNe0LrXiGZN5ooWtdJHYTSkuvRAoNNUo9j1_dRXCAHwNvXiyICHLIZxk7RskSShI0nIZyjPY1o4BPAw4jWBLkb7Kb3UQ_Lq7qM_uzhqdN3axkfYsCxQ61qmpsD3IiG5uj7DlDOJg9xKaYgjupkgjXV10oSyQ3__XdpCZMz6lsuD4Ld48HqWjFOUA_RjOnRR2TjQGvSGdzBjFJaM535TRQzPAQ538AjsS_cEDOU2sSuiCQ7Ie8DYUpvjd4kMVPrHFx8fRAIbDkwP9oWaMHP10Hzad14aN3PFhWy42_q4iBqg4TXIxoOX-4bm-IRq0z5XKwnDGwyFK4o8MvSbqyrhHqdYpNM8wBtwnhVsDlwtoPQ-ICg7XgsKL9fISR_y04hyfWn-Bty4jyi_4m6Gf6AJ23l3QO11ouIKvOvTugA9W-vBGFBVrzvvnr6o-bqvS-telqI0Rh_zly_5raDPNV0OTJ6970G7jxWbxj8VsRNrOWD5371CZnDd8cs4zXFz7Fx5cwHuqeIx2cb2PDXi0j_KOdt_c__8A99LEAQ==))
- [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/eJzNWftvG8cR_lc2LNJSFp9G3QCUKES1nZZIKgeS4iCwjPPybkkufK_c7ZFiCP3v_WZ270XRFpX-Uhkwydvdec83M3u7Tq7yXCdx3pl82HV00JmMe51QxstCLlVn0vGLQHZ6nTwpMp9-D1_cxeKFeJ2k20wvV0Z0_RPxcvRy1Md_f--Jq_ezN7NL8frd9c_vri9vZ--uBnSAD_2kfRXnKhBFHKhMmJUSl6n08eFWeuK9ykga8XIwEl3acNdxa3edkzOmsk0KEcmtiBMjilyBjM7FQodKqHtfpUboWPhJlIZaxr4SG21WzMrRYXHEb45IMjcS-yVOpPi1aO4U0lSi09_KmHQyHG42m4FksQdJthyGdnM-_Gn2-u3Vzds-RK-O_RKHMK_I1O-FzqD4fCtkCsl8OYe8odyIJBNymSmsmYQk32Ta6HjZE3myMBuZKaYT6Nxkel6YlvFKOaF_cwPMJ2MY7vJGzG7uOuKflzezmx7T-XV2--93v9yKXy-vry-vbmdvb8S7azjr6s2MXIVfP4jLq9_Ej7OrNz2hYDqwUvdpRlpAVE1mVYG14Y1SLTEWiRUrT5WvF9oXZRiJZbJWWQy1RKqySNuAg5AB0wl1pI00_OyRcsxqeBffxX_RsR8WgRLnfuEnw5yO-F4k04FfrC72dwQSO4Lhooh9oizDi4PrpkhD1Voyq6zIzTBQawjgrZVvkmywOrRF3Su_IOJemsCl28O7tFGZBI3hHzr1yh-Ht-YIE4WYHTxSJ5KmfcKH8IFatJ7pBDGgZNR6yMbNmd7whQ3K7zlZnIKZWnjqXsKvCna06_NMq4V4oyJ4xEBeBb_k5EeXH_aoyDUYXP48y9nzOg70WgeFDEWSkpbsz1B_RnzCj5kZLrClBoPZl_dLkI6XYXmQAo_OCh9hPVcUQ2AYIdKRL04WP4Esay1JPiZ_16kDhJREHphtqvJagO8BIErcEno4A1AikSpBpTlBUVpkaYIER16F24GYGdpG4KNjoxCunLn5KtmwbSI4gck7KWVsxAZAgz1BwjtKZjJcJkj2VVSJNGx5yXphxibIxWe1zXFcGpHKPG_mGQRAfgbAFMMmMZYNJUatq0llJiPxH5mKW5ih9CQ2lRaEjVRG0dc68KPazhCzECMtoLELX7FZwSJiLcNCeWRW2D9GihtNsAYBwGcygci82CL4ns4cRRJWPkQVIqcqeEz459IGAF2ZbWub1EbgjR90_FG4oBDXpdJNg7AJNyvtr1wA5igiYdgKvX2CpOtcLRGQt6DC3xjvHNkMSMg8rBsTR3ifitX-GDq8ExCa54mv2fFc5xTKEvH4Mou4iDwWguibxCD98GgOf5TSAZYd-f2zZNJ969p6ZpOg5D4Q75Aqh0K2EajOpMzDilrWFccxKYwVt1z9ssh54fuoUIsiBNtyu8soo5BtJOg5hUwsI0Vx1BPVLxfijSdVjDaeVeEFKPW8ZZjMZeh5Yp3ogJoPbEZQWtZdyjIXYVR2n_grU6wKoSPO1FnUCJkjzqFqTCa5_gMpVkXCEcfq3CIHHnEAKfSi5buTu3hHx2RB8ASbTREPKFbBLLgf3ItTMQ8T_7P98cL-eKOjwf0ZQWJbbj8pYtJ8KkbUEFKmAh66RPS8UupE7KyUw6ENRldKvhaT9oBeiC496lb--ADSH08qikyTocjRzJQpMtSuTyYr1CcioLlGEPGFznIDhSPbKi31WsWcoBuZN8hVIU7J92khw9wSojO0W4Zkqy1qB_o8Dm1RyuoCbeBij3qjySSVOtu1Feg1Q4WfPDR1EuL01Fn2jEV6TT8aiXYwx9ieJYkH-8V9kD9Op2KZ6YA9ue9W3kgf4PVLGlBw2ayyDiaWj7igUETavwyCbjO2emVI0IDwcKCG_pBkDcev5JpaDLRUDPAl7Pfw3c9UpGLDrtMZyGZofNMEnQogmM1HHXwSq_-jytqAzKPLGtpMGObrZe3ZJY2IbpsEniw1z0ToA8hbucyzFasFvQeQ9SAA_g_YdAT6zOos5uzNWzHHfW0JIGhvqzhwXVzd49m6SgPZRtPMZyoO5XHq-NCQdk_sCquzQGaQQiVKEL99ZDurgc9u_6bez_Ta0PdIoZ7LS2mRwXmENzX6E3ZQSYZlo0id1vhDM9lkYkkR71Y0tPq-nttrveTlmN2VZ5PtYscq9C9yhcQJHs5K-qy8Qsp7EvAxLklEaPWzrZdkGDvBNJT3qFVnzwcyhh1kGAyn4y7FZhlVBc0yFIogNaUkPKufchmvnjowfBulZivyMEGoYP6H5DR-w6L2_oC-Z2t8x4SDhzpWIWYbG_4DSrUSPnIaSoowoATPVYhBFoeA4ivHh8EQTtqKWK0pKX2_oDGOLljok2AJsCwJ61h-n4YiugwQikSkSPdKEdjGU9Efs3ZWr_39FtSqE263k-aqiQxDi7VUxRha5qrZ1e11AyWTCm6m4tXob6PRqCb-GnFieK50E_aBZlfsdqPe6KEnduPeGB-DwUDsdE8_cBjYCX0yaV0LnMMqF04yZt2tAOCseajk2m1sHXACdk96zfM23Xpi1D7fZsrGrdg63DuOsYuSfdbucZN5abgkQhjAlXThpRGWc5m7GyYY-VsRJhLtryS5KgStPUKrnl2lbm3w6uyg92rqU7voKx1WGolhk05LNprRC5_ShAscT0B3nZIassImkc21_pidTR-2NeOgbERbGZh8RWBVIapTYVuq-jphV3J4shG2J6ts2T3Om4dn0WBBd4ey6Rg6hHdsX0QFSqhJOH53x4oQgo_MvDRL5rDnOUMoPQ_UQhah8VYyX3nlfRuTBu2H2l__UgaOipO4n2xivuKMCsP3oNmhdoXhCSUl2eTVGA6XcNsOGLQ-K287HIvPKiM4LN3nwpvrDFdHfHMNsl1qRFM94nBTlDRmBuV69rwmnHv8cCo-fBSeKz2e1-VF7DwR_QsxT5JQ7Fx1FlR0xbfi5YmY0uAiGoa5hJLMOUeA0zUb3UFVTXDdMj1qhw_jA2xy0Zq9uuNSz7385DLmUSpCk5ev_nHW3sMlzy47eK-T8rR5uC_GJ0jT-gkT2puKz8_PK3q9xt6Li4tu7agjZsvW3yFE_XMk9rDxmUSeMUy3mdtI-jPsqksTKtLdk8FSGbRqzYEZMWTE-Tkw8ap9X1IenWCJNjTJfRh9pEcWKOIg_HICP5233N02bnefmb90_GD20kKp6f4I8LU4Kwn2DsaNaBZRJ9G1MpiU1tzMGB4NoSq0Y3XJFKrRrdWN_RMtAxFDn4jcqLqGhvmPKP41gUb9f0TCGs0q4EHobptvrfg-uXKlhRv8qoTfYJRdeyliJD8rr_l6o9soNnxs91zOD1YDGjeYJkKMelSyPNm6dgc3cJhmF1sbeZ9oeUBgeyrGhLX8m4l_oksZGW4kzatZoeo6j54aFczOfawR-HjJotv2wdNJWpvoOXsh6Z77nj59oO4wZv_V0m0UoCOQxZWohtOAJeeji66j5Sy5tz4u18-eZPFQJStmTGtszJT7IHVjb5i-EbcyA4PqjjujOzpCkeZ4SZfFoNk5K6-RnBIjewfU6XXoHTBm86x-s92J174_fvmqGGM5SY197d3pQ46pf3o6_k70ZeavpnnkfTcS_T6KpMF_9i1PP5TRnN-Fh3reoOn7foiHa_viGg8QWvHnzkOvXAditdbhtc7DR_73Xx4ZenE=))
- [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/eJytVw9vGjcU_ypvN22D9jgg09aKABJLWg2tIlNIW1WluhifD6zc2bezD5Ihvvue7Ts4CE1TaURKgp_9_Hvv_d4fbzzFlOJSKK_3eePxyOt1fS8hYlGQBfN6Hi0i4vmekkVOzff2i5mAF3Ahs4ecL5YaGrQJZ52zbgt__e7D5MP4cjyCi6vrv6-uRzfjq0lgDthD7zhlQrEIChGxHPSSwSgjFP-UEh8-sNyggbOgAw2zYeaVspnXPLdaHmQBKXkAITUUiqEariDmCQN2T1mmgQugMs0STgRlsOZ6aa8q9Vg48KlUIuea4H6CJzL8Ftd3AtE76Oaz1Drrtdvr9TogFnYg80U7cZtV-9344s1k-qaF0HfH3osE3Qs5-6fgORo-fwCSITJK5og3IWuQOZBFzlCmpUG-zrnmYuGDkrFek5xZPRFXOufzQh84r8KJ9tc3oPuIQMeNpjCezjz4YzQdT32r5-P45s-r9zfwcXR9PZrcjN9M4eoagzW5HJtQ4be3MJp8gr_Gk0sfGLoOr2L3WW6sQKjcuJVFzodTxg5gxNLBUhmjPOYUKhrBQq5YLtAsyFieckc4BBlZPQlPuSbarj0yzl7VnomZ-JELmhQRgz4tqGwrc4SGKckCWiyHxzsi0o4LQY1WkgwfybhmOdEyP5DoZV4o3Y7YCu8OV4zihmB5aksiFxjD5LRQ50QodEYaOFjtNrxXLG9FLOYC43PHHkA_ZBhZjFlBNVA8JdMQ10OzDhu0Gbmgfz0LNZDz-rf5udEIEIZLqXQY4j8l3PBYTaMJm-1z91b675vQA7K53_owx99Ww_b8lBUrkhTspB1WcsKS-MAS9W1L9oqeY0tt94E1sbVGPW2NUwZLopaAgU1Mfh7bZYUbh2J3eVHdJTPHqEazcRxPiszWP8Nd0_2HlausVBusDLrIBdwF5BwMsifRGeJgJSHJVyGaK92OY5xzKZNnYEyWyn_Ex1KWL9WxBeYSexNUlqCCgMBgYHYHjrs7p6OrsOhy0VhJHjVnwp60Ck2JAaWjXk_xfzGIIIo0zAjPFQzgdeeXTqdT0gVdM2UaWKqxXismsFiyRBkJKbCCOngszfSDxV_tQICDY7s2re72_ORJR6Xd2cFjipVnS0QXOSOamapb1RXTSrjICm2C1na5Yu3Z3We_hXO2wKJvLohIr5eSO1RflY-wUtZwHq7tobIw2Ba7Lf2ShsNGp-nXt2e5pAnhaejiY8HbAooiRNA_8on_2NThsLwf4POXGqUa1gze3LN4r3Zz7Gq-PaEZV7dI-2az5klZMZogVTLXvbudjo8MAJVIjS1CmUZiWsSCr5hwIau5eUeKACZS2xZVKqembXPcjA2TYh3Bw3dCro26tRkUkgRjhnmnkXL2QlSK6WD6GoY2kSSCmNAyuq87PwW7YBqog9L-fWPauAV2rxFSv0Zv35hkSD3cbP3KuV_7lEoqSm8ek_v7dFgvbU4R_Tl6DsvMs-EnqJ_kIbJxju7ud_16UUUv1JJpbEOgqhi4KoD0ljbmxtM4Re1J4PTYys1MnKJqxQI00d4XSzDHAxfjRi0B_YNsfLmvPjVmXjMEHxVYht1518j3-exWjWuwZj1K2BNJ_Z3p_C0vP5HsB6m4z-anP9_M9eMEr2eym4R6vYNRqm960NAUWjNzs6hxys2XTJsRUaCbY8DA2RgfeBzjKWBuxk0cFg-5oEjK6kyoKFDqrgZCIApunc7bAMZ4j22tt7UQfuZfbiGSTIlfsCnc43Ttw-0OOUpNi4tJothtUPGqFKtGTY9_wIsas_y9HwJLu4Z1nsV5Y140thzFhCcQmTnLEMy0KESC2eoGFWPibiYIysP_F5JS3WhXFCv345tkf-KofWLAwp0MK2LFA7Mu46qPHV9XR8BEZBZOsK-cQuZNaA3dOLMj49xwz02XMTQOQBjK2sqLOaah38d30bSgFN8zP8BbyyBDMlsHVTBDs71zM7AYXaVyM3ngCj6CzasS35n5_q3siRWl3bPfii6KZabdQ9pr4Y0D-vJl9xW0SE6XA5WGrzrQauGco1u2H0QsaiUkndvXdcLnNZ2U0gQXV-4pjAvYEMWdt_UrOVbUAzn6ydt-sT__Ab92bH4=))
- [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/eJyVWYtOI0cW_ZVar6K1Bz-A7ExWBqMQmGysZCECJlEEo065umyX6Nd2V2McxL_vube6utvGDLOMxNhdVfd9zz3VPHUKXRQmTYrO-PapY8LO-KDfiWSyKOVCd8YdVYay0-8UaZkr-j56d5eId-Iszda5WSyt6KqeONw__HaAXx_64uK36fn0VJxdXv16eXV6M728GNIBPvSLUTopdCjKJNS5sEstTjOp8F-10he_6ZysEYfDfdGlDXedau2u0ztiKeu0FLFciyS1oiw0xJhCzE2khX5UOrPCJEKlcRYZmSgtVsYuWVUlh80Rf1RC0pmV2C9xIsO3eXunkLY2nX6W1mbj0Wi1Wg0lmz1M88UocpuL0S_Ts48X1x8HML0-9imJEF6R6_-WJofjs7WQGSxTcgZ7I7kSaS7kItdYsylZvsqNNcmiL4p0blcy1ywnNIXNzay0G8HzdsL_9gaETyYI3Om1mF7fdcQPp9fT6z7L-X1689Plpxvx--nV1enFzfTjtbi8QrIuzqeUKnz7UZxe_CF-nl6c94VG6KBKP2Y5eQFTDYVVhy6G11pvmDFPnVlFppWZGyV8GYlF-qDzBG6JTOexcQUHI0OWE5nYWGn52QvnWNXoLrlL_m4SFZWhFseqVOmooCMqiGU2VOXyZHvHbDSLUnXvfgeIfal0tbG9LZQjY3UubZq_XClsOMJKbNTutXmZKDJbRhvrdpmXhR2F-gEuBA9aQfhwuWuLzWVSIGzx8IUDsbRbtkJjqOcvnpnEbjwzKSpBy3jjIYe4YB2jd640v-eWUWmZ2GC2Du71OtCPEvmlMLkds9zouTjXMTIDU61GfgrKZ9UnzkNRGKg4_XVacAWYJDQPJixlJNKMIst5jcw96hT5zO1oji34zDpIjEoTqx8tSZXOoMFsPYBBjYC-MEM9ZPlSoN9tushlLKisBDYWDcZMX1cvYWmyiLwdVM9sikK3zDSVJqVCk23eNZXCtQcjyU4Wf9dp6g5VNUd72XWmWwZ8D1zS4oZAqYon9SdZHtaBJITLyjxLgRto12g9FFNL2wjTkFCNLmBAKJbpimMUI6ssvrJSJlasgF_YE6a8wyuT0SIFhizj2qTRRtpdUqccgoKDR43o4l4I0gfg0QnJRAKUKimlrMEkWWlFASzTANaWxzaTlI0fqNWuzV9anH06PxXceQj5X3pj139kJm4QMl9ECKSPNuKpc5K9ceBnvZ6iRWEyqffdKlZLRE88yKjUAaWAygjlYA0hK8ICPeMxVTUtbgj8lBi4wDIvS_tlocjJltwS-fnwz6AZDd-z1FuTfBZVUYgr70jbSZxLocCoZVWABWZTFG2U3rZAsn-mF0jADaTwJ4bRSizgw3Ujp5EHCAnelpKUccA7SIhNLXoDj2bw3x-lCmCvi_bZtLTucMkRe10GTR9gjXXCnBHOGdSe1ahLgAegyUWuKZQ-N08iY03pan2rct560iQNKBYEiyidySgIxENqwg0U61KBVYmgofelH19aZPZbe33e62i-daBVZlsx7N0lT3S4JDxy0bjiASUmApNrPG49OvZ6-03YTogIiSAoluAHIYJQR6l1cDy-QeCvUdWE2JSEoHBfjggPhPD-KAIlEaUpbcgJyydigf_PTTx8RDHUao_ap0z4uOXvpAUA71z3T8NHiNhDrWIihfytUl5H0y1tVNhE7LMq9Aparkuajuuo98STi_to5HGcJgU3l-80pnzVKKHyPHAnZIk9t0WUIpamCBK9Iomfoa8ql6ETGKAbApoMXSIa43EmTf5Eum9hyue-OHhmJoofM4d5taTaNDZubnKElQF0Awqw0e966fveXiX5WegISNQWyG6iVSM6tPagTP4OTvBN5TrWiXVe-2PsMiESFVYox2NHZ8hZLqxvD6mw3FJlTQEmrAOHyCdPFK3BSaFRJOHzkRdLsZprq5aBDMPugZcQY8Dl6yDNweGgIpKPOvSheq4ihmTuTdrVxuvPrirgJTF3sNgWuBSlUqCf8zKK1jW2CMTcoQ1NVg027iqukkJ45lyVdApWiqo-wBuS0AHYRh06nrhZhq1u6rYbqDe8LuPuy-w5X6koWgUvJqjnujR2ZsG19-tZ4HZsK-r6RLxzRHI8zuUqyFKiDnmgZGG725Dj87AtqpXHFyF4O6_IG6cOilGJJukSHHt4Qx4uiAvZpbQcFeIC6bwL1O3tVZ_PqFp7vZN_UXKqijaJicu4uTQxm5C5WmJMK1vmPJWLOPhuvwFRyGQI8kV91Cyxis2lyrqPcWbXgkocbZUT_6CLDprI3dToc_6AzyB9eGgSHYHuuTE5pDnoqUJBPK2MQhrlhY5gJA6hbJeVHg4A86lEE2OtWRWusnlFq0JpJVEq9oQhma5dQpOJTM69CRXWVjSUcn2MIyfdwYFLiXN3W4KjNLWMzfN8xEvwmdskCOiemW5PdgctjZqaY0zE-_1_7O87CIegn2pGyV3apgouEIWHspouU0B2qKAohCXfnukqAkWso_JEFmRbt1sb8s3WgR534o6pfdf5kW-uDWPvN-7EaC9ynW4VBXNAVMaWJbCfe4OilMEOSNylhXxEd6EUdGGH7n0G7fM9vHFh5KRWAXc9X09AH9kzIIXla01FyX22huLjy1gvZbFtN24Ra_xC_7sLTG1JfS_ttlErlvc64PGCtgo8Z3bVt9_rf-3Wlk9DQoFuz59trzDX7fqV28-gO1V8gi7XhenR3KNueUKnAhaSlz1hUARNQYy2C6J3JJ5bJX8aAQApohXM82ipSUQzkBxCcqRfT5_H9ZNt8tdtd9lZNe0UvVAyAKOZLKo3OGijbzAnZSjmkiTuaAhaDdwqkabh-0bw1JGNxmjAEtGDgrDzPklXCVWtDB_oHVlfrDTfgul1GtUnlMhIlczaPcnwJrqWC8djyl1NH8nJWsVEvBrztut0Fy4VYW_D2nYYTPM61AWPglY8hnVA6DDxG-Jqze38qW3SW1y9Hco39zpNNTI_vcTo5_9LBmPz0y6c_ho51G6cD4AAbkQ25dJ_-loTIuiReZDl6Qytesxcjp6Hei7LyAaAjWXgX3SxaMh-btL4b22RvyRNBqgpfnEZl5bfbua7LsE8CsHJ0lUh_tyi2382b2w8klZKALkcmIbm3-ucxnGrBAJHc-l9ID5V1H1Lg--8rT5yxIfqGQIO33842tzjOBMv88-khSl77cMDcdBDxTdPWFD7cnrcrJ24_BwfH9fi-62jJycnXX-L3QmMzT10G2GGxCW6vRbMXGlQbVAP96qNmoretUWRwwjkTreYUHOxeGM4gR9RhdTDqWXC7f5nN6Z2H3eEwwtwr55eFeEy6hwIYHS3pbeJxoYs_7iNtEut7omFbsKiO1a9t6B3PbisqS3yUUc6UCxksh1wmErc4guTpgXMPAu1e3VJKagsqN6_8YsYnZv5usUaiZvutsydqu3y0YbcAOTaVdjOyGwHTOO2i4ebc7ZFJZ0mHrmzNI2ai2k1et2YRBBewD1tqqcs3QK2otm8fHQPcFVy8wUPLdoDxOna3QD_dgchnSN_Waw0E9HEk06_Q1dHE-m8-VNWJ3lQ6uDwfXmA5TSz7u9cnQHkT9Te3sF3YkD3iglfJsRgADSw-OXevw4iGc_4j1-RmbVkKqUiPHxwf6nCA0yx5L7z3PfrQJ6NdcSz8_yZ__0Pf05rhg==))
- [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/eJylWAtv4zYS_itzOuDOzvoRe9vrQbGNpskuarRNiji7xeJ8EGiKtolIokpScVwj__1mSEmWnTi923OAJBbn8c3HmeFQu8AIY6TKTBD-axfIOAgHnSBh2apgKxGEAS9iFnQCowrN6Xv_bJ7BGVypfKvlam2hxdswPB9-24Gbz9Pr6SVc3d79ent3eT-9vemRrJP_WXKRGRFDkcVCg10LuMwZxz_lSgc-C01AYNg7hxYJzINybR60L5yVrSogZVvIlIXCCDQjDSxlIkA8cZFbkBlwleaJZBkXsJF27VyVdhwc-FIaUQvLUJ6hRo7flk1JYLaGTp-1tXnY7282mx5zsHtKr_qJFzb9n6dXH25mH7oIvVb7lCXILGjxeyE1Br7YAssRGWcLxJuwDSgNbKUFrllFyDdaWpmtOmDU0m6YFs5OLI3VclHYA_IqnBh_UwDpYxkSdzmD6WwewA-Xs-ms4-z8Nr3_8fbTPfx2eXd3eXM__TCD2zvcrJvrKW0VfvsIlzdf4KfpzXUHBFKHrsRTrikKhCqJVhF7DmdCHMBYKg_L5ILLpeRQZRCs1KPQGYYFudCp9LmGIGNnJ5GptMy6Zy-Cc67682ye_VVmPCliASNecNU3pMKjlOU9XqwnxxIxQ4m4z7Rm28mrS86tOVZUCiGi5UcRrbQqctN7YRuVpTqwKRWyL1jqJPtnfu-_dzmJ1LEkUZzhzkSpSJXeRuKJIY8CcXvBhZZiCde4mKEdlEQeDPGG-bgP02cy2uvWBiEWj0gTeLv7Qrunkii9gFmrjQH8RRlGBcNeGD0wg-wzSzlVu3E28RlVFcVkZSp63gnHTFsIMrssEpcBnGExwAYTR7hS3bDMkmf2qCQC3mYsxdTwrrxh74aqHtVREYtA6QfKFgfOi3a5J0dmGLbIHqVWWSoya_ZRf48dQRzGTp0BjcY1teQlL3SuCKTKkm0Ppi5Y6iYyswLzz5WicYRhHqa4t8485gXaSimcDXYOlImVk6icsWSlsHrX6T5n-334gRmM125zYeZZYSiszywpBIyhQIfvh5G9qBZ-ElvsM2MCclGqzzBGjDmBR1Ly4Yg0t1swibJoknQcN1Smfil6ENvIVIrgTHYHaNE7PpZ2lvfyY6ASCUNM8zDMilRoTBVfLCNnYBKGqcxa7QriL5hGaHMpV4VneJ45XSP_EJFtuOPUNiVCH8Pg_Pzv5-fnlYl7pAf5ky53XBYlgmXYCbiKRcVOrtUC_0YGW2-KlkmHwHIVhglCZzoqRUaDTvk8FktWJDZaM7OOlkXGCd8IOZtMataNVRqrzRssP5XdRcEfhI1KkZF_mDOpyUbH7-SkA4OX1rRY1hbHbv8x88WBszCshGptLMkDzSaWfdWSiAOAifa_fhzkr1H0WWHX2NBi3APsk5HvG19vzKUJno0siaxyu_I1tl7Ji68xc7xxkyo5fz3dcudZVJIQRcAK7An7bMeykjH2euwpFsYEyG9jyh5E1FwcvRZAvec-8QaTScs_KXV8cXXqmprsnn1BNgA1SHbn4OhFFlaxhqFvAt51E1zPLbTaEwqgUnPWLg58YcvCwsXjO-L4GwOG8wsAKm3N-ANgH1lgOeOBJq1IjReFFpU6jgY0LbjO0S4p_1Ek2G6hKlhqthzzDts7nVmIGk8XGu6WWqVHR2KJ8QDcQVV5Q1RGLXS3a8ZVyzQe7F5jo3NIRS9mlrXazzSgIjpb6OzAZ7V1VXPevWzTzydTtqnr3O9ea9tv6b9earvTKq8k5BvSHiC5iZrdYXSyYbzlusE85fPzwUTlB6VphiMybsoffvw8sf3uBI6iVaIWGHMEbvyQqIq0aySs3nxXtpRW1Wd8kCIXtYwrbVigpweSeTEpUqzSVBw4ufKQdIXQgF2CBN_zETx4JUM3AIrJKZMejbeyVmy55x6S-7dnthlvnSbKCG0B06zrkgXo4DLQwgfQndDzs2H7JFOk-2dcnaKq1MZNRBGKQQtMqDjylCltyorwcg2SPuC9qiSjNEJjmjiKofZDkYxL-Wn81HuCd54Y98Xh2UPp-X9b-0OcmOg4I2cwbJ-i8SMip8uK71Tb0iLm2hGxJ5hcUuBv8niKRaf5pxyS1AkGE6Ue8C6RVxQe8OYcv0mdE8WrHw5QKFqh6dE_xFzD6ZXr-abgHC-K7iaAMphpmcLyxKNhCaqweWHbbkeW0Cqt_qVhFkfvVrsNO98ZSt_LehzFkPHi4CYfNNg5PY5Mdo1zyLdkasqIW1i-jlgctwaVenkhUxpvnWg6YU8i9hvwXOYCnWspo3G33Dqaya3IYRD-t42o2XVGI5pNB8N_TvBA956uPl3dRlefri-j-7svLcJ17eKYYWmv8ZZDdd9ucO28D8Oquo1Kj8vDNPK-djvswPvh_-n1ffiiGCjwuiBq542cP3ZdZcxaYBv1aWCgSy8ZBHcXxaXzgD3xH99QXJhFQ5-YBkvy_bBqlT6VcHfWeEGLGlt-IrxfRMrz7UccGGbbdKGS1t-OFTtw8IUmLLVsoYt2u31RefM4xX7MGTpU5ayjLEsas46DX7NDrP1eIG10o64K4RgEjMdHPuqScEc4PrIwGsE8mPlqCx1XzhPTwocwD0jEH_lZnPiEBpHg5f91Wx-ZTF5V8kDLkYaua89BJyjfA-j968Ige-R8MPy2GOCyyq1_lxh00dqYv3s3-A66TPP12KTRd-fQ7WKEtutGKrxudxOWLtwLxkQuGjY55wk-fPSvBPGB1UX2EDx3qnVsfwfrWP_B87_dz38Ak3P-7g==))
- [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/eJy1WXtz2zYS_yoY3VwrxdTLjptGlnVVHN9E05zds51mOnGHhkhIRE2RLAFa0Wl8n_12F-BLopz-c0rGIol9728XC2rbUkIpGUeqNfqybUm_NRo6rZBHy4wvRWvU8jKft5yWirPUw_v-q_uIvWIXcbJJ5TLQrO112PHg-LQLf35w2NWvs_ezKbu4vvnl-mZ6N7u-6iEDMX2UnoiU8FkW-SJlOhBsmnAPvuyKw34VKVrDjnsD1kaC-5Zdu291zkjKJs7Yim9YFGuWKQFipGILGQomvnoi0UxGzItXSSh55Am2ljogVVYOmcN-s0LiueZAz4EjgbtFlZJxXZiOn0DrZNTvr9frHieze3G67IeGWPU_zi4ur24vu2B6wfYpCiG8LBV_ZjIFx-cbxhOwzONzsDfkaxanjC9TAWs6RsvXqdQyWjpMxQu95qkgOb5UOpXzTNeCl9sJ_lcJIHw8gsBNb9ns9r7F3k1vZ7cOyfk8u_tw_emOfZ7e3Eyv7maXt-z6BpJ19X6GqYK7f7Lp1W_s59nVe4cJCB2oEl-TFL0AUyWGVfgmhrdC1MxYxMYslQhPLqTHchixZfwk0gjcYolIV9IADoz0SU4oV1JzTc_2nCNV_fvoPvqbjLww8wUbe5kX9xWyeO6KJz0vCya7FD7vL7LIQ6k8nOytSS1SruN0f0Vpv6-zJBS1JR2kmdJ9XwBcwn7K124qFiIVgDDX40r3gmbyJ_DCfRIeqGomCWKlqwRVEglrqeAretx_ZSD1E0E9EOBAvBSRiDPlhnH8mCWu-MohPwLiUQDwp3kqxYK9FyuIrgaXhWJBvEawQSogY6u6KGZEKVM2Dxjp0agM9UNZzHdYdlYj82vyGwQ6bB1IL2A8DOO1ohqumFBTytmj2JAKvUkQYVwbhC8o4Jot0nhFEPHiCKtXpN8r5CF6h4TEmWYBf0LEgZqFTJVGarAw8zQAj8TH8z8g7nnRNwkrvZ1F0C6iDVvH6eOCXEAeNJ4XEoBLYUfywVcRQTErkWItwxUYwcEgBZ2IKt84owpXSIeVljvMnwBqRA33f2YiBZvkSvTqkVcAHKGMbq7yjCVcpmNQ66DuyQOJTwWWMQQQTXpow5WKU1f6DvMCHkUi7DwwaCB5Ukoo-NC6PB1uwDdkPemKUKwwEVQmioQ3yXPIXgDPKgHReVoi6HU2L2VGwEpoDLAAAKr68GCTpMpMfGhAF4ZLRBgrarEeFBbEleINTYZB9-Wh1BtGHSFOlYmxB10yTrAPCOiZJPy-hTsHoB1EQefMcaAw6KJkjyOIBlov825lIKbXMbPBUY7BOro6j3VgAB3YhPl1J9FIk-EHiumD0Wq2BHTXWgkFFqmEYxWAAeTaAhqtpPuyU5o8GUUu-nDOmmBxxli_z362PhrkYg-3wI2jEWtCSS4_SeO5MOJBM8Pmia3CH43Ih0LPy8rIbRDXqKuKoFztEw8z4ZKQcwalyPUZtcc-NDkvhNiY5FbIABxzqddSCZoLeEpFBcJgOiABzI-Fir6nlgGmRRKMssAjwUXlmE3qPrr4dHHtvr-8-Di9uXTfze4-z24v3Yvrf_0yvZm--3jZLpV3cuPqsEVoEnIsDAmqCJNKoii_FEqLhryCAHhPZkzqkWiEphbQDRAitsFKjeDhHg1E2LhyKBvUfAUkefoAckGqLcv6LmON3mK2C31jFBrxlcDcTnDJde225zJCg5L_gVjYSovTdqeNKKDa_w7N6phrZCXRjPEsbw7fQewXDBJtdsvRaH_nbaOIs11G6NZ_ALrOq7BcCj0eTNrA3jFo_AzNXBEKKfQY9J4JBwbJklMGOvvyZdQkf_gt-UoAv18oGNYVpEJnacTshovujSsxnLSNV6_Y8GTIjowNxvfn--i5GWq7za8EnSkG8X-DHMify4hqBrfIopmSllw5QBD0FiAk6d8CIkhyya2DWPz44dZhxd3Nh9tdZM7jOKxCEhhyxIUB9O6b8j4N1MsQDcVCfwOjIHMfoyCaTlAvcqYlpwVHex_SaEGHnTeiHVV0OhRzxOSFjbuJeB5po8B-dhUMDysYFgrOiLWiwAK9qqEAKWwIUKAyagPsKaAUDzxn1FpGlK1c4IUJVkGQXlMYyvAROaReb2gTKj7nlZ1v2x06rDt8PsxKrbpkLTs3sPYGC2MvOTYFmHuEd7A9MbPqf08Hf4cZhMNexmmEL_QgybkJ6-4QvTUPoAmDc7X63lY9fsWOn51aYsqPlZA7vy2u_hIHObmtXB_kOlB322-oCWGO5qmLEwJs2WPIQdNOMtk2Pd0-P-dBz8uidowal9mdMPpCcNiyrGR-OAC1J7mhtYXXDvuxYeF4eOqwYcPCyQAWBmbBQKnZshI8aBndkW0nP_ROFw57Pewdw9fxm94Qvk5Oej8W8CLIYAdW7lwsZVRsLCv-CBJx7MOZ3M2Pre0cWUjjxRkN9cXqdpA7YQggDzAZyZVrOghZOK5MhKWrTqUAJpN2nuQvNsom3D0ysd2xxGbBXOZLv1d6bRurXXbyFFU62bdN2KK-L_L3XBVcPp_lcp47HRs-fAlgptZ2JYhOLaJH1XbSKcv63zR3Nx9t7FnMnsdhy-S-L80rhXIyhVYqQnolwuzOGOzNegeOIS-dI3CDjKO8dYLkplncnDTNXooO8CV0VaWrB43K7k7JOwzfYqBH9OJcDoGySSuWbFlBnRwPAWVkmB2O8e0V6oVk7DKZyoL_J69P_zLT27dvoWagXgaDXBO9OgI3MYubvBoPO4SbPPpij_aqXbjVw4bb7pidlV4h7ZMUKC8ficg3D3LynKjzoh31vrCAcvVfMGUha8svmUGidm2gPTjZQJGpLNRw9uHeI05m-KaJhtEEoIL9ompw5TVUFQdBrpNq3F6fHWI08Q6K6Ng9tQzXQc5qhALjluGkS-sY2t6uzgcSSAZn8DUuDbXhPGNHR2XPqc5c5pwNnAULNJX980OOz_OKPyUhWeHhZDwe4ytq8xbCTM62TuExLu5PZGRAxzAWlQzXuzvqPvNwl7nsQY3Kjuv0HdadNOtp597-A9Yp5CBvBNe24My7d8MoFwU5xHc3Ek7edsxcdW4NsznFAOIU2BjEe3jeyg8z-GV3iQE8gycth97NyBDOIcVvFa3oyfOGx6fZEJbjRJsfMlpdEH3uHR0N37AuT73gXK3cNwPW7cLgp7s0ePnC74Z8NadfN0I5r8j0PC-Eh_bAAw_gDBI9tp6dfB06am0dqr31_Dv9-x-LDrkI))
### `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/eJyVVo1u2zYQfpWbhqJyKku2sayokxjw0gwzVjhDnLYo6kKgKdomIpEaSdn1DL_7jqTkyK2BdS0QQ7wffnf33R33gWZacyl0MPy8D3gWDPtRkBOxqsiKBcOAVhkJokDLSlH7nVzMBVzArSx3iq_WBkLagUFv0O_in18jmH6YvJ2M4fb-4a_7h_Hj5H4aWwNn9I5TJjTLoBIZU2DWDMYlofhTSyL4wJRFA4O4B6FVmAe1bB50rpyXnaygIDsQ0kClGbrhGpY8Z8C-UlYa4AKoLMqcE0EZbLlZu6tqPw4OfKqdyIUhqE_QosSvZVsTiDlCt__WxpTDJNlutzFxsGOpVknulXXybnJ7N53ddRH60ey9yDG9oNjfFVcY-GIHpERklCwQb062IBWQlWIoM9Ii3ypuuFhFoOXSbIlizk_GtVF8UZmT5DU4Mf62AqaPCEzceAaT2TyA38azySxyfj5OHv-4f_8IH8cPD-Pp4-RuBvcPWKzp24ktFX79DuPpJ_hzMn0bAcPU4VXsa6lsFAiV27SyzOdwxtgJjKX0sHTJKF9yCg2NYCU3TAkMC0qmCu4JhyAz5yfnBTfEuLPvgnNXJXMxFz9zQfMqY3BNKyoTbU1oWlS54QUpY1qtR9-qZSThhilipBq1JWatKm0SKith4vU5UcY2eH-6YRRtz6toLCpDhp2XGkWExowU8bewuMRSMVK4Yy4M8pCLcCN51pmLPYaLrLapemK71OxKhsy7QWaYq2fRhuQV88JGZIVHC1aUZpfaT80E0onljsA30O07Ly17r-oPjsq1olWlWBVjGQDaZMOh5v-gIUxR5bL3stfr1WpJgiMBNVVFDVYWmrL49uv3ehHqgs4lSn0M3b4lgPvRruAOiY0hcWhqrw0mHcNUGk84atuPozISn64lqsCTkFvrdWsbPs8xKZopgxjdvehUR7VDy1Jsj1ySDJbElte2_WXvRezCRWphlKfcum4SG7UyN8K6la5cgOm4gEFUGx-Tv_--DIdTJedtf64Eh0OdWE-n4fCEkNfeSUm4Oo9tBFamw2mnVR8kHSaQQENcG7dTi-GO4TyzaYK1rcZWYnAGJ5yOa-O7eBVHsN9jPjGGfT_q408cx4Ang0tLBH8M7qMWHtoBHBsi9Dmz3TkcFuSJpa4PsXpp06zXyOlR2OtEP6rqw7DkDDuNlT9bsBV2V3P2-QukaZ3KNCSVnbkd2OOANpUS8F9p3XN4AeEUEhh0IuCHKzi0EjxxnEP2I__c5bY1pWMsUsUq2TnlmRmeoqvBMpEh_mePs3allFwwx2Sbc7Cp9hUY_PLyzZs3h6ZQTSH1WlZ5hvXcMBg05bQbpoXnPLma0EfuttTIdMkRmA_7qm3XMClsKz4HdXLqYoug12bkmtEndEaMjwu3nZ03diPjGvsRqAsp89GzTRuj2wleoP8HvqOvRq2FFx8nfLlz9T3iXSIh7RoDRyY3LUFURerOcUo2uB1xw--8ty-sEeAMZc2lfAlhy9sN-AChnjtuJKNnA9fXuPBnFaW4qH-CMSLExY-HTt9LcbdyLJeH7h02KW52qLdxXhFMfnX2lrv2qBhAVrn3DE4W1yg68hMWnzOG5Ja4DRAPwhP93EUHH3Ldinax4Ak-Pe1bDl936vmFGogNpf3BZdVHsSyNf74GXfR3Q1-96r-GLlF0faOL9HUPul1cXwb_GLyKZd2cFAv3ps35ouWTUprj4cY_QPEA6yCegkPUyHE2nMiRicHhi_v_LwFkzNY=))
### `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/eJyVVwtv2zYQ_itXDUPs1s9gRQE3GeYlKWascIo4bVHUhUNTZ5uIJGokZdcL8t93R0q2nMfWJUBi844fv_vuQekusmit0pmNBl_vIhVHg34rSkS2LMQSo0Eki1hErcjqwkj-3n05zeAlnOl8a9Ry5aAhm3DcO_6lBeNPo_PREM4urz5cXg2vR5fjDvt6__dKYmYxhiKL0YBbIQxzIelfaWnBJzRMBI47PWiwwzQqbdOo-dajbHUBqdhCph0UFglGWVioBAG_S8wdqAykTvNEiUwibJRb-aNKHE8HvpQgeu4E-QvakdO3Rd0ThNtR55-Vc_mg291sNh3haXe0WXaT4Gy770dnF-PJRZuo77Z9zBJSFgz-VShDgc-3IHJiJsWc-CZiA9qAWBokm9PMfGOUU9myBVYv3EYY9Dixss6oeeEOxKt4Uvx1B5JPZCTccAKjyTSC34eT0aTlcT6Prv-4_HgNn4dXV8Px9ehiApdXlKzx-YhTRd_ewXD8Bf4cjc9bgCQdHYXfc8NREFXFsmIcNJwgHtBY6EDL5ijVQkmoKgiWeo0mo7AgR5OqUGtEMvY4iUqVE86vPQrOH9WdZtPsJ5XJpIgRTmQhddfyFjlLi8Qpi64ji9Wvh25uZQrrujGuCWq2Rum06bDTI5dFkUk-XyRP2xO9pJQ9Y7SUXKRK6zw8X2nKCYr0YJMP1nrP7stQJL_54l2R92xeJLcz_C5IZqSIgnluFC7gHFMSyBnhkGSyLGtZrg-UoMwzDCWeIWH4YWT3LXhN_mz1y0DlRdWSbKnw1jrU5MLo1KP6zZQi71Rw13J-Y81Z1JTGMmGJukW4UZQp426oRPwpNwapGnGNN74YYUeNGN_ids-HEqsyR52ossZaq7g5ze5onc7jY8h15rY5wikRdG9ZM4BuFy7S3G3BJtqFEAxygWLmQofxZ7Omz9OIF1WGCYmxFkmBtsMKUK2Gb2BXukhoE4mICRUIbbKFXJXnuJVwrAXNGorFgJayMNykNIL4f144iIUTHM6erOQ0cc8AMs8ZGyoeFEm7vw9kXKRzxg2q8AQgJkFL5N6g1MaDgVV_48zVcLMinfkNp_C6d9Tr9faIZzT4aAiA5AmlSKW5sOVIIN-fIdGCEim4FXiHKOjMPTBbZ8FK2L3O67dPktijnwajRJU0dqy6dZxmnRvXbyE5a8DV4EczSZygINCbCvWmTG0ognYfhPUV6eUMSlV6euV5HBDBwy44qfLx66767qoDWuWWXX7uHmfq_r5GnLqYNGXSodV3GbvrtaDfguMWdDotUPflhs94ZHjqMX8_1jmjgHRn8DZwGxpINOBhU7ZfxvP_qCbg8ZGf6DQ13K5hIMybweBgoNXiZMd6Fo79hbnbVpFveMA5Lqnnmq0Aj1nMn3u1bI08aUpVkoRYqQV1mAzCrjh_7LgbvyHGZ7EDlR1smFsiRahNBboIaQ7wzRekqitQdWpowSAgNSLDVBT-L51dVRaZCwXmwQ1rZJlTKpxclXPIcuXzowIl6sG5nWd6hHExnunCUUfO2Ebtsr-u2Pwj_CaUZB72PH1pstH-H6mF8tTc6DnaxhNcDmvjP2C8Es_jlEyvyqHvS-ZAvMNRA18P2M0o4hbMvsEpu9VyWF0i_1KwB0B7l0Pa1XrzmWlWnfMwV49YQvvpA0sJ1AIajWfATp-qh6a_X5_fUvVyswl3QZswbckNTk7oepsUkmrVvoB3BB7vWrUzJUKRj_YeMKHr7unt74RKXsBEp-h8qjY0--gBVGfLOkIIjkgWJgO-amiFXgb4EZueW8z-nSHK1lL2j18XfTLr3IUXiqhNp57KV6_6b6AtjFyd2nT2pgftNl05jv44UhbjdiLSuX_LSNS8himlTGhxHd4LaIFukOw2um9VdprkB3Yq5ej-m__9B3bofi8=))
### `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/eJyNVm1v4kYQ_isj9wvkwAbaKi2XRCUvvVp3IqfAXXQqFVl2B1jFXrv7Akmj_PfOrjExTVrVoES7M_vMM8_MLH6KDBojC2Wi4e9PkRTRsN-JMqZWjq0wGkbcCRZ1IlM4zf06OZopOIKLonzUcrW20OJtGPQGP3Rg_DW9TEdwcX3z-fpmNE2vx7H3Df6fJEdlUIBTAjXYNcKoZJz-7Swd-IraE4FB3IOWd5hFO9ssar8PKI-Fg5w9giosOIMEIw0sZYaADxxLC1IBL_Iyk0xxhK206xBqhxPowLcdSLGwjPwZnShptWx6ArN76v5ZW1sOk2S73cYs0I4LvUqyytkkn9KLq_HkqkvU98e-qIyUBY1_Oqkp8cUjsJKYcbYgvhnbQqGBrTSSzRae-VZLK9WqA6ZY2i3TGHCENFbLhbMH4tU8Kf-mA8nHFAk3mkA6mUVwPpqkk07AuU2nv11_mcLt6OZmNJ6mVxO4vqFijS9TXypa_Qqj8Tf4mI4vO4AkHYXCh1L7LIiq9LKiqDScIB7QWBYVLVMil0vJoe4gWBUb1IrSghJ1LqteI5Ii4GQyl5bZsPcquRAqmanvpOKZEwgn3PEiWT8SUlas6Btztz6bqaaLXWtnbCJwQyDzDXJb6Ng7vXIxVBmkNon_CcFzZg9PcGOFwOXBnixIdmR5OJwcVUX_JTTjmkzzhcvu5_jASDYknpV5oSUu4RJzSthqZpHSNl4mar87n91w2EjvjirpYaiQHhJGn1NTiyKVpS6WqrUppGjP1BPtE5YXegr_9pxSm1k_StTzRMBXFyi14dDIv3BuQbl8Li3mhjz7Lsvg5AQGP70HSBLofzj3mQJU8g2HBxKfTM8gnGztMfzMen86-wEV-mzhbm-9C31LatrqXBO5rkwrWOIFrijPdqdyjFEJv-g18G8RqDxSVU0p0ISJM5bajGkBnmlosnrKaRB18SDzahO1LvQOqRf3-oNB_-djP1kV2JK5zMKGZQ5935J0mmaiLJQwfnAZfD_4eA7mHi1fgxfSQzFHpiAyGEFqVrWtGc33jJ72AZ9f0kkVXQQsI6hAAUknolpxfNUkXvm9x5MRDZyREMCoilVJidArtP0iZkL8h9ztA1DfZGHaWY47cLbyd-lWUjR_ObPlktoiOJFWpN__DLZbwrtGKyYwaIS_YBl3me8lD85JTKlIKvtYwwf5m01dVaG2innzzGmDVO3RqqMFEF4468dgFk21Owg4pD1v2TP1Z16ecGY2U1d14LfOvs1qf9Q3pnd9hRyosYVpHVrCY_yFygnQ2BNROPq1OWu9GadN0r7l_DLB0IV-3Gu_HZ4aI9sppdE6raBHy2d6WfA_wXQP6pd3ikhtOO8PfnR9MhelrV44oi4BnfJ37_rH0GWar09NPj_uQbdLN5OlP5ZioOhmLF-Et5BMLhqYnPOMNjfVewNtWO3UffTcqe00Kgd2mrro-Y_w-Rvi8QMW))
- [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/eJydWQ1v2zgS_Ss8H_Ygp_5IclfswYmN8zbdrrG9pIjdLRb1QqYl2iYiSz6SiuMW-e_3hhRlybGL7jpFHEnD4Xy8eTNUvza00FpmqW70Pn9tyLjRu2g1Ep4uc74UjV4jymPeaDV0lquIrrtn05SdsTfZZqfkcmVYEDXZ5fnlv9r49brFbn8b3YyG7M3d_Ye7--FkdHfboQV20XsZiVSLmOVpLBQzK8GGGx7hq3jSYr8JRdawy845C0hg2iieTRvNK6tll-VszXcszQzLtYAaqdlCJoKJp0hsDJMpi7L1JpE8jQTbSrOyWxV6rDns90JJNjcc8hwrNrhaVCUZN6Xp9FkZs-l1u9vttsOt2Z1MLbuJE9bd96M3b2_Hb9swvVz2MU0QXqbE_3Kp4Ph8x_gGlkV8DnsTvmWZYnypBJ6ZjCzfKmlkumwxnS3Mlith9cRSGyXnuakFz9sJ_6sCCB9PEbjhmI3G0wb7aTgejVtWz6fR5Je7jxP2aXh_P7ydjN6O2d09knV7M6JU4epnNrz9nf06ur1pMYHQYSvxtFHkBUyVFFYRuxiOhaiZscicWXojIrmQEfMwYsvsUagUbrGNUGvpAAcjY6snkWtpuLH3Xjhnt-pO07_LNEryWLDrKI-y7moHTUm2xL9OlK8G07QuEvOuNnE3wq9YLAbVh2alcm26sXjEDuGjiEymOqtjIhppE8BQ51C_zBBtwdf2dvfM5fo_FoOFWiUWoXjiCJeAfe75XEmxYDdiDUeN4kbAXU3hAexm5FWvV3FrVqhqa4kthx9Gel9IE4J8oR5iFYWrbGujl2ZpO9vakMMUocgNZqD9yE5k7MzqjYCbuaCqcnAk_WuRGqoPBCRbswfkUSTYghu2gJy2u0VcxTLliTQ7JrSRa5tNpo3YuPrj6c5ukFlAbTP1kGQ8dmpgOdDhVcl0kxsWc8N95qepETAE7iGxCQcQ78ViAvNbzF2OaMnIIBlhCH_mPAlD9pjJ2FoYh87moFhF8Wj5NeANpQ2KzcS9npZfRGhY2pymX7E363bZRPFUA9dra9tBJAPrmssS0yAQ0aSo8UM5KzZPsujBSZHuXFNqcA_GElasYN_Kp3wtvIu9Xuk7aQntegtvPFkBgrG7FVr1gyuKljV8vOLEN2tgQ-3gXqYIaL5CrXTb7u7zlSlaKZ4MgsXCUNv1iKPby8ZnvoMZzmT9IEy0-vzHfsPJitQnSbYlx0CO8BYgzTaEBGwDfyNHF3NO1BrHjlMWLN7BY7CFrpmMteAOhN-AG4s9ENy1EMZqAdiWqcVmQa70t7aCVCOM55COqDAqon16wthFniTs-rrqW5TlqVHhF6GyQAmJXRVIz4QR1-baSuS4uYGIGQTVGDRtV2LAoVAm2G816B9kFxvZBWEpExRrHchrJidZtgmJ0WNCxRLfN3LdeUIF2dTZi6tyjYyfWP3Tr8j5RaP4CRevmMONvbo62NaB1KuIYIQArchHES5Vlm80gU7qsECelQ6aewy8wW3jknyArX0X1seASesPaqG8DCpZ0huefq1Gv0W11ikCS_jUQfO5YtEoRTdFwL8ctaq2bSdKBFeBdcrlxf7Z0bs0Kp3crojjAwr4NYiCfXWA2ofwH0yiYhG8s8BSC-INYb_c2jSMYyYwPjhJLDxhWdU2lEtA4hVFZ-77FzAN2wpL3ZDC2AD2KMj6gGf5Q41jZ6Rw1vEKqYABN06VZ-VPkHrRIyy1luR-jNid2jq7W15nY8sFs5p7M6tY5dggyWiqc3EZ3733U9nN_fC_II803srYIPNwein8Lnhe2EgjI_HcAkMVhh-XMeCYWJyoyVlKA2Luhw6aTvbmOY2-KJmtrlf9akladDyfgAgy_KlIR6KzYqMj8BM0p9lNbQMpltY4gMJTSlf4pONvVtEqF8xddoryBHeiOlm_z85LoBZEfWCIXmV5EtNkqrIneyvZUY5nab4OCSV61p2VJDQrVW0UOHERTBtvvSYKvCORH2JY_EOS5FOEpdGqUFDrwLOmD2dZsy6daWxzvBZqKY5Qx55bYIQDi2v-VdZZSdTZEgRGoxbJFHssCNjgDp0nFkEUVLuRC2FrH2uy7rk-hFSbdGvfsouRonLnLjenJpNiTPQx8DOKm80KPrPzyMOc1S9bLvzf8fEzjky_f42fgb5_hXeSZbnxk9NfHCNedKK_0IOyFNjlNG4sk2LQ8TWoazRRrxmrO5Q4fTwFTbTJWtUgz3tQHfajoN6PIFsm0DWkevqazT2Hlzpf9p6j1MJsfQXAO5O-xder_QoP0Jjo65UXoCJ2QmiOpU_V3am7nEEtNaum3__5qBl0C1EuGk6V3FxJHSc3Ouqhxkyu0mKQpsLzHL_Caeqwj7IK7-0Nfcl7BUV_m_vYGbC5VySunHPPRWVTPNdcpgFVpoewG9AnJ2HfJ9q52kuWRrrxpSb54sR1PRnYpdZVOl7XDyCedbHUj6qX_76ygb9499NBpRyQhd_zn5fhrz8VAXLH2V6vduSFDXYC0UG5X6WM3omUyq7WA-xLBrRu49ZVNfuTsh1SdGculghns-UEO6Byujg_PZjVDyH1UO4r76CS9tpopOIIlItaAavjOstR6riV1WmWJ1Ge-IH2yDQEzKvMnQznefLACqbKrIJqQuuIjsOKrtCuPIrxqilED3WnMOjBbj-NKUHjWN1RxykVLbf5eo5B5-SRy9LV_l0VwkjjOYqXvZkMi9OiS8FxCLr1VV_qg3kttImLau2tArHEhk70_MT7i4PE-hvvPnwkxdXT_vX19cV5i72-uGzVzBsMBsHePjpelPkv4XCsHv4MGGpO_RksFAu_iYbjtVzZYXA4WwQXjriPjxz7aaZedr2eP4qdft0wcOxLsT4R6oPR5WSkW4fWeRnv9veGsOg3_UN9n8_9kEG94tvh73-rVN1Ly2oDPWHBt7SUXdi_ezDE8dPGOI8iofXfALeXAENZKHtES41EKeJsgzVWAZgrqQ7RRac9d6Nro9WgPo1jkNq_5G-kj1F0cfk6v8Bj95IGDxtt6OtHr15d_MjaXEWrvl6HP56zdhtNyrRprMOEFLcTvp7b_xZI5LyiM4qiBDcf3Tt83DA4zz00nlv-Ofpg7Tli1Xj-w_78Hx3Ycro=))
### `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/eJydVmtvGjkU_StXsx8WmuEVbVUJQiSapLtoK5IF2qpaVsjj8TBWBnvqBwRF-e977ZmBgZBqtVRqwL6Pc889vvZzoJnWXAod9P9-Dngc9HthkBGxsmTFgn5AbUyCMNDSKup-d94tBLyDG5nvFF-lBhq0CZfdy99CmHwd345HcHM_fbifjubj-0nb2Xr7z5wyoVkMVsRMgUkZjHJC8U-5E8JXphwQuGx3oeEMFkG5twiaAx9lJy2syQ6ENGA1wzBcQ8IzBuyJstwAF0DlOs84EZTBlpvUpyrjeDjwvQwiI0PQnqBHjr-SuiUQs4fuPqkxeb_T2W63beJht6VadbLCWHc-j2_uJrO7FkLfu30RGTILiv2wXGHh0Q5IjsgoiRBvRrYgFZCVYrhnpEO-VdxwsQpBy8RsiWI-Tsy1UTyy5oi8CifWXzdA-ohA4kYzGM8WAXwczcaz0Mf5Np7_cf9lDt9G0-loMh_fzeB-is2a3I5dq_DXJxhNvsOf48ltCAypw1TsKVeuCoTKHa0sLjicMXYEI5EFLJ0zyhNOoVIQrOSGKYFlQc7UmhdaQ5Cxj5PxNTfE-LVXxflUnYVYiF-4oJmNGVxRS2UnyqRcL7Hvhqk2ten1sY1JldWmQ6UVpu02X23FbIMplhtGjVTnTdgTo9YBW-YSm7Y7b6Wxuwyl1j7FwCU2hZG1X-bCoOK4aGwkj5sL8YyFgVukWLdxHIOw6-Uj22kntiH0ur92u90B7D-dTucKfmeCKWJYuQ3O_nwkkxduw0Pcd9Btvx-UkcbIrjKe64QrbSAlWeLjuWCy3PD0vpFAvErQKjMPXntoG5Xd0uhx6SvzOPCr22xVmygR8M0tszvynKmDBmaXF0I7tgCcBE5eaLL0JkOXfbB3neVk60553auYDDFLiM0MFA12mjwF5Kt3kuv365q7qnJdl_GeaxW-lKm1ift91KCBqys8kR9t9ojAPO-e47fxJFgOU7lyJK6Knru5WMDsY6yFgNoHw_tcTMRZmbtQZ79_pPMaatewRtU5P1v3LpWiG26rHbEVyrYZeo82ZnDfe80yDbFOK_nSWyHvdZdB3QAdvVj2thd1sRRWYh-mcDjaqgIcYBwafF7M5Tz3Ds6wlDOJ40aFIiwzNX_KWiRldu0scRBidxoF8BASkml2zN1ZR1F3PDoptRhlKX9Zpna107efqziFN1xane1KDeGs35eGjnN3EepU2iyGIh34q80oy1q51HixbBj44YHEzB-mw16dFTyq7i7Ur6gJD4VXjf0vcH2ZJiUG8Bbzt7W7RpjwqE6Gizui3N3W9QOhvWOuZEQyvN7wQomJIahzZamxGCushSmjsKeUR9yga8HrSd2fHqbXXTxjOZbl5oUskGArIkSOrHhfXtVWq8oNhmPTlOiUafcEif3MwnrP0yn2dIqSTvEGnUkmkS7HtgM7LI64X2xU8vIXWuNYbGcaVF8qT6yTQbMJnTJgIb9Cu0Xe5H_kPa2kvvSTvKJ5fkA6UeKLBb9XJPhl17dyPTmsnw48xVAVArr48wVfq-4NiK9CdXjUBmJDae_yve3htsxN8eINWhhoSC8ueh-gRRRNh3q9_NCFVgvvLYP_GczB4lZG1pF_Bmc8qsWklGa4uCkerriA9YrH4CWs9vHmONpH7oKXf_y_fwHeCexw))
### 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/eJy9WA1v2zYT_iv3qsAgN7aVpB_ZnI_NjdPNWF97sN0VQ1MIlETbhGVRI6k4XpD__h5JfSbK2nV75wCxRR7vnjs-dzzqzpFUSsYT6Qw-3jkscgZHXScmySojK-oMnDCLiNN1JM9EqJ-959cJPIdLnu4FW60VuGEHjg-PX8Hk1_FoPITL6eyX6Wy4GE8nfS1qxN-xkCaSRpAlERWg1hSGKQnxK5_pwq9UaBxw3D8EVwtcO_nctdM5NVr2PIMt2UPCFWSSohomYcliCvQ2pKkClkDIt2nMSBJS2DG1NqZyPQYO_JYr4YEiKE9wRYpPy7okEFVC15-1UunA83a7XZ8Y2H0uVl5shaX3bnx5NZlf9RB6uex9EmNgQdDfMybQ8WAPJEVkIQkQb0x2wAWQlaA4p7hGvhNMsWTVBcmXakcENXoiJpVgQaYawStwov91AQwfSTBwwzmM59cOvBnOx_Ou0fNhvPhp-n4BH4az2XCyGF_NYTrDzZqMxnqr8OktDCe_wc_jyagLFEOHpuhtKrQXCJXpsNLIxnBOaQPGkltYMqUhW7IQCgLBit9QkaBbkFKxZZZqCDIyemK2ZYooM_bIOWPKu06uk2csCeMsonAWZiH3BCcCNfoBU1uS9sNsffFIJlMsZmrvKUGYkv11ml481BQRT6rIC_FfRJcXT06yRLVPqn1KfWugIaDWIpPKi-gNOuLf0FBx0V-3icR8hYSI2yezhGHsJInrKupymvlyLxXdNpYvkQ-UNMcYbxnUvElWjSFrydjxnlsi_2ASbI0K_CCLNz69JUgFimG304FgdAkjusVNxGAoilsp9dbnKdXcLSSn1oLcjDnfZKlRDMNfxrIqFuPEZnZuCXaYL5xgmuw4vDjuoSKwygyRkPQUXr-sDYObcqFMniExt0R1YCn4VqMx-j_OLKQ3RvqtEZkjcz-5Os8lJvoK6Z8FfawlXkO2eKrWdDDDUy4ZRm1f0hoLRLgBZv3X7hbOop8orzKBfNdzIRcCI45jMouRpjAhWxrvu9plDKQyQksex3ynU8hs-MCY6MFH66wucjxTIktkP2CJmXRtlDpf45AXxDzwXh2dnJDoO0-DiIgiXquxzmMo_x6ORyCKTc-Z9vplhcPS4x_E8fql12quU5L4BzykKCzqPM7Pgnzrt2SDOZLq4ge90eX7y6k_mn6YvJsOR_5sOpyNJz_6i6v5YjRcDM-nE31IBFhhqSoTBWsj5n4aY85h0cBilCB74Ge6X-BvzOGA89hy0UXUg4HNdyQdJuo3ea74mlN-StQaod-hViAZWlrRhOpc9jd0L-EcPn5yO9C7AFuaBoNGbTsrTIJRAJr5xog-PrA_wHqpjSMCJn2JGP2bYkkXarMZVtoXx7666BSKADwPLrFwoYe_ZxRTzOApjpuKDHfIyvuCEVWeFCr-MfrNroaj_171t9EzPdTTY4UZ40IekDanDPTTQlq74LaIwQajfXiKX2dwdKg_-vfBuXmoxQWMun6aybUfENzhTafUfd8wgoqN0krbGfZr9vfBwebPdL5AHn9W70lN77dfprdNpy2LTxCsLZ6uURrQFUvcTteaoEnkdgrl90Bj3SJ9PRlfv_wLZGytB4aK_w8mYgGquPjItC18n6Olce_ztNRilpa3ZnuzOLa7jc_fFc9fseOfszVs2jo6_Bu2Hogc3h7n2irZVpFXDZEnETObtOwBUKYT91ir-BO4h7ff5gvgANjfzAyzpV-aGXcVR7AHD30iJRXK1f2zNoPnSUQT5S8JCpc1vosdXP4btghIH0pl8cL4FCjyS1vdg7v7wr7-0g_6G5NiiqZMpuhnm5t5E2tG3YdHVTcX4nIwQKoTsbe2MNXd_2ipPuY2R6XocuGlWRFSIeDsDF14S1DM3Ly0HA7o4Yd29JhZh5GIc-y5LyYoZui-dONHquxtVLI_aHmUGm16BDlilFVtu_1tJh_52KnCM8T-L9RVx_TKW-y0sfY0z8AyegVLqsuD6dxTliQ0aiFNsFd4bgfZckmFW6KpGZ9R7LyNV7ixPLeu50yccY8iV1CcogKvisoPiVRn4ZqI5xdugUWQnZ9yI2PmXWuur-sY7hBStGE4Vx3GXFK3hiQvvfl9onQ87-zLCFj6YrWngm2RvyRGBI07SNWvNMddu8NfCvu0tvG2W6ofCy7BhJbYLceRThE8gvTrBqQcS2r71ilpkjdajcarxXsCdg81cyV-23t4fn-oE6BZJnQreFGBsBXC8E5HX3O5ZuoN3lh6-Y2l5hFZ4dr8TmLRa_mHl3FrQj5Zg7oVimK67mVxc9LR04asZfFkAPU60-fiAr-SOS_joMf50n1ktI4jB4b1odYd6NrH1P7u3nIyz_uGGZww2a9boS3RWk0P_YwtI7wSm5a-6OR1F--PxrOywtWbcdCU8iMmEHfrqtPSTZmFoX4j0_yc2za_vU8qlR9gmWu_yBXFutD-zVcp_Kva7GHV1NZ-iXMKitgqjshtFc8tDPL6bSsahonE6ZqYkRzCg0Je29BC4ns4hAEc4eQzfThWxsojo_0u17pf-WUNWWDYiJWDYRkw7yMb975rp2oL8s-18wWXwc7DhY8Oqtw7608SsaWhqtN19PtRrJSiet_rJDdheHT8KjvCaQsMJ50eKjwPDw6OTqBHRLg-l1v_5BB6PSytCv8p3R5EvZhsA_OGOGZBTWcYhjEO3tiXujigubZx7rvFPFbpxjzWK-f-k_n7H7m6k-4=))