Skip to content

Commit 2777267

Browse files
cnaples79pre-commit-ci[bot]PointKernel
authored
Add static_map heterogeneous lookup example (#762)
## Summary - add a static_map example that demonstrates hashing and comparing compatible key types - show how the map can answer `contains` and `find` queries using probe keys with extra fields - register the example with the examples CMake target so it builds alongside existing samples ## Rationale - addresses #714 by giving users a reference for heterogeneous lookups without overloading the existing mapping-table example ## Changes - new `static_map/heterogeneous_lookup_example.cu` with custom hash/equality for tuple probes - build system entry so the sample is produced with the rest of the examples - Tests not run (examples) Fixes #714 --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Yunsong Wang <[email protected]>
1 parent 64f57e4 commit 2777267

File tree

4 files changed

+158
-1
lines changed

4 files changed

+158
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ We plan to add many GPU-accelerated, concurrent data structures to `cuCollection
224224
- [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_is3DdvkVpbtbEMLxw7gJS1mrHCGOG1R1IVCU7RNRCI1kbKTGf7vO5KSLT_apMAcIIl55PG7u-8eXHuKKcWlUF7389rjsdftBF5CxLwgc-Z1PVrExAs8JYucmu-tFxMBL-BSZo85ny80-LQBZ-2zThN__RbA6MPwajiAy-ubv69vBrfD61FoDthD7zhlQrEYChGzHPSCwSAjFP-UkgA-sNyggbOwDb7ZMPFK2cRrnFstj7KAlDyCkBoKxVANVzDjCQP2QFmmgQugMs0STgRlsOJ6Ya8q9Vg48KlUIqea4H6CJzL8NqvvBKK30M1noXXWbbVWq1VILOxQ5vNW4jar1rvh5ZvR-E0ToW-PvRcJuhdy9k_BczR8-ggkQ2SUTBFvQlYgcyDznKFMS4N8lXPNxTwAJWd6RXJm9cRc6ZxPC73nvAon2l_fgO4jAh03GMNwPPHgj8F4OA6sno_D2z-v39_Cx8HNzWB0O3wzhusbDNboamhChd_ewmD0Cf4ajq4CYOg6vIo9ZLmxAqFy41YWOx-OGduDMZMOlsoY5TNOoaIRzOWS5QLNgozlKXeEQ5Cx1ZPwlGui7dqRcfaq1kRMxI9c0KSIGfRoQWVLmSM0SkkW0mJxcbgjJq1ZIajRSpKLukwv8kLpVsyWeEO0ZFTLPFyc2sI1ywlKW1QWwkQlqlae2K9zIhS6I33iQCLnSIXktHCrJHTWtVrwXrG8GbMZFxjme_YI-jFDgmDoC6qB4imZRrgemXVYo-uQUvrXs0gDOa9_m54bjQBRtJBKRxH-U_ojOlTjN2C9ee7eSv9DA7pA1g-bAKb422rYnJ-yYkmSgp20w0pOWDLbs0Q9bclO0XNsqe3es2ZmrVHftsYpgwVRC8DAJibND-2ywrVDsb28qO6SmSOM3_AP40kxQfTPcN9w_2EBLAveGguMLnIB9yE5B4Psm-gMcbAgkeSrEM2VbschzqmUyTMwJgsVHPGxlOULdWiBucTeBJUlqCAk0O-b3aHj7tbp6Cqs3Vz4S8njxkTYk1ahqVSgdNztKv4vBhFEkUYZ4bmCPrxu_9Jut0u6oGvGTANLNZZ9xUx2s0QZCSmwEDt4LM30o8Vf7UCA_UO71s3O5vzkSUel7dn-McXKsyWiy5wRzUzxrsqG6UhcZIU2QWu5XLH2bO-z36Ipm2Pv6IMrHd1uSu7xgqMq5Dsf7-06qm29kooXfrsRuAOmnHa7WS5pQngauRhZA2wtRhGi6B34JTg29-KiRADw-UuNVr41hTd2TN6pXR-6m29OaMbVDVK_0ah5U1asJkiXzA0CnXY7QBaASqTGbqNMTzLdZs6XTLiw1Vy9JUYII6lttyuVUzMBcNyMvZdiLcHD90KujLqVmTmSBOOGuaeRdvZCVIopYVokhjeRJIYZoWWEX7d_CrcBNVD7pf27Hrd2C-xBI6RejeKBMckQ-2K9CSrnfu1TKqlovT4m-PfpsF5anyL7c_Tsl5pnw09QP8kjZOMU3d3rBPXCil6oJdTQhkBVMXCVAOktbcyNp3Eg25HA6bHVm5k4xdWKBWiivSuYYI6HLsZ-LQmDvYx8uatANWbeMAQfF1iK3XnXzHc57VaNa7BunUjZE4n93Sn91OebKb-XkLucfurzZM4fJno9oysL9-a2nulHF6bomjGexf4pd18xbaZOge6eAQbQxnrP8xhXAVMzweL8uc8JRVJWZ0RFhVJ3NWMCUXDndN6FMMR7bJu9q4XyM_9yB7FkSvyCDeIBB_YA7rbIUWra3Ywkit2FFb9KsfJreoI9ftQYFuz8EFr6-dZ5FueteSTZsjQjPIHYzFyGaKZdIRLMWje0GBO380FYHv6_kJTqBtviWLkfnzm7EwetFAMWbWWH6WCEcuYf3VYHwERsFk6QrxxIpjUOTg3l3IA5A3_vbrPLFl5MLw29Hr6wxgWl-DL6Ad5a4hhu2TKowgla652bmcXoKpWb4QNX8Dlt3qf4Ys13r25PLCntnP1edFAsM-2e5F4Tb-zTly87r6BJcrroqzR61YZmE0cd3bTtIGZxMyHp1L7TEz6t6aSUJri4dI9qXMB-KO69TVDJsaDuydE_3uaL_fkPoxeK0w==))
225225
- [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/eJyVWQtPI0cS_it9PkVnL34AuU1OBqMlsLlYyUEEbKIIVpN2T9tuMQ_fTA_GQfz3-6p6eh7GLHusxNr9qKqux1dfN0-dXOe5SZO8M7596piwMz7odyKZLAq50J1xRxWh7PQ7eVpkir6P3t0l4p04S1ebzCyWVnRVTxzuH347wK_3fXHx2_R8eirOLq9-vbw6vZleXgxpA2_6xSid5DoURRLqTNilFqcrqfBfOdMXv-mMrBGHw33RpQV3nXLurtM7YimbtBCx3IgktaLINcSYXMxNpIV-VHplhUmESuNVZGSitFgbu2RVpRw2R_xRCklnVmK9xI4Vvs2bK4W0len0s7R2NR6N1uv1ULLZwzRbjCK3OB_9Mj37eHH9cQDTq22fkgjuFZn-b2EyHHy2EXIFy5Scwd5IrkWaCbnINOZsSpavM2NNsuiLPJ3btcw0ywlNbjMzK2zLed5OnL-5AO6TCRx3ei2m13cd8cPp9fS6z3J-n978dPnpRvx-enV1enEz_XgtLq8QrIvzKYUK334Upxd_iJ-nF-d9oeE6qNKPq4xOAVMNuVWHzofXWrfMmKfOrHyllZkbJXwaiUX6oLMExxIrncXGJRyMDFlOZGJjpeWxF4djVaO75C75u0lUVIRaHKtCpaOctqgglquhKpYn2ytmo1mUqnv3O4DvC6XLhc1loYSgcCRtGhu1e25eJIqMk1Fr3i6zIrejUD_A0OBBK5tmw-WuJTaTSQ7nxMMXZsbSblkEjaGevxgziW2NmRTx1jJuDbIjc9YxeucS8AMXhkqLxAazTXCvN4F-lIgiOcOtmGVGz8W5juF_mGo1opBT1MpqcCcUuYGK01-nOcfZJKF5MGEhI5EipmX0InOPbETUMjuaYwk-sw4So9LE6kdLUqUzaDDbDGBQLaAvzFAPWb4UqGqbLjIZC0oegYV5jSTT19VLWJosIm8HZS2bolATM00JSKHQZJs_mkpxtAcjyU4Wf9epswu5M0cR2c1KNwz4APTR4oagp_QnVSFZHlaOJBxbFdkqBTqgKKPNUEwtLSPkQkA1cp3LPl-ma_ZRjKiy-NJKmVixBkphTZjyCq9MRosUSLGMK5NGrbC7oE7ZBTk7j8rN-T0XpA_wohOSiQAoVVBIWYNJVoUVORBLAz4bJ7YrSdH4gQrq2vylxdmn81PB9QWX_6Vbq_4jV-IGLvNJBEd6b8OfOiPZrQ0_683UIs5TVm8sBRXeXC_hPfEgo0IHFAJKI6SDNYSfcAv0jMeU1TTZEvgpMTgCy7ws7JeFIiZbcgvE57t_BnUD-MBSb03yWZRJIa78QZqHxL4UCoxalgmYowNFUSv1tgWS_TO9QABuIIU_MViWYgEfrho5jNwmSPC2lKSIA15BQmxqURsYmuH8fitlAJ86b-5NC-s2F-yx12VQjwHWWCfMGeEOg9yzGnkJ8AA0Oc_VidLn4klkrClcjW9lzBsjddCAYkGwiNKZjIJAPKQmbKFYlxKsDAS1ti_9-NQis99a6-NeefOtDY002_Jh7y55os0F4ZHzxhW3ITER6E_jcWPo2Ovt1247IbojgiBfggWEcELlpcbG8fgGjr9GVhNiUxCC3H05IjwQwp9HESiJKE1pQUZYPhEL_H9u4uEjkqFSe9TcZcLHrfNOGgDwzlX_NHyEiD3kKjpSyN9K5ZU33VQrwyZin1WhVlByXdJ0XHm9J56c30cjj-PUKbi4fKUxsStbCaXngdshC6y5zaMUvjR5kOg1SfwMfWW6DJ3AANUQUGfoEp0Yj1fSZE-k-xamfO6Lg2fmm_gxc5hXSapMY-PmJoNbGUBbUICFftXLs-_tlZKfhY6ARE2BfEyUakSbNh6U6byDE3xTmY51Yt2p_TY-MiESJVYox2NHZ-iwnFjfHlJiuanSmhx8VwcOkU-eyFuDk1wjScLnIy-WfDXXVi0DGYbdAy8hRoPLNkGagalBRSQfdehd9Vx6DMHcmzSzjeefXVbglMTPwVUb4JIXSoFkzoso2lTYIuBzhzbUWTU4t8u4UgrhmTuqpF2wUpT5Ad6QhA7AWnno2GA7DRvV1G0WUG94XcTdl9FzZ6WkaCS8mCCfq9TYGQVX3q9HgcuxqajrA_HOEcnxOJPrYJUSdcgCJXPb3YYcH4dtUY04vnDB23FF3Dh0UIxMNEmX4NjDG-JwQVzILqVlrxAXSOddoG5vr_x8Rtna6538i4JTZrRJTFzE9dWI2YTM1BJtWtki466cx8H3-zWIQiZDkE_qo3qKVbSnSus-xiu7EZTiKKuM-AddZ1BE7j5Gn7MHfAbpw6BJdAS659rkkPqgpwo58bQiCqmV5zqCkdiEtF2WetgBzKcSTYy1YlW4sGYlrQqllUSp-CQMyXS5EppMZHLuTSixtqShFOtjbDnpDg5cSNxxtyU4SlPJaO_nLV6Cj1ybIKB6ZrrZ2R201GoqjjER7_f_sb_vIByCfqoYJVdpkyo4R-Qeyiq6TA7ZoYK8EBZ8R6arCBSxjvIkMifbut3KkG-2NvS4End07bvOj3w_rRl7vz5OjPKio9OtImcOiMzYsgT2c22Ql1awAxJ3aaEzorqQCjq3Q_dqQet8DbcujBzU0uGu5qsO6D17BqSwfK0pKbmP1lB8fOnrpcy37cYtYoNfqH93gaksqe6lJdD48Vje64AbDAor8KzZ5d9-r__1ixvnGhISdHt-d3OG-W7Xz9x-BuUpfRR0OTcMcBVlCkxIXhaEQQbU2TDazobekXhu5PtpBPQjd5YYz32lYhB1N3LwyG5-PXYe1E-2mV-3WWJnZatT9GZkgEQzmZePNKihb9AkZSjmkiTuqAaaDdwsMabh-1rw1DGN2mhgEnGDnIDzPknXCaWsDB_oGawv1pqvwPRiRskJJTJSBVN2zzC8ia7ewvGYglZxRzpkpWIiXvV58-h0ES4UAW9N2XYYTM061Dn3gYY_hpVDaDORGyJq9dX8qWnSW0S96co31zpNFSw_vQTo5_9LBgPz0y6Q_ho51J05HkAAXIdsyqn_9LUmRNAjs2CVpTPU6DETORoP9VwWkQ2AGcvAv3KxaMh-rsP4b20RvyRNBsgpfpuMC8sPmNmuGzD3QRCydJ2LP7e49p_1c42H0VIJ8JYdU3P8e51RL26kQOA4Lj354VPJ27c0-MrbqiPHeiifIeDw_XdH7TWOMPE0_0wamLLX3DwQBz1kfD3Cgpo30-N67sTF5_j4uBLfb2w9OTnp-ivsTkSsL6HbCDMkItHtNWDmSoNng3e4dzYqKnpoiyKHEYidbtCg-lbxRmcCOaIMqTpTw4Tb_c-uR-3e7tiGF-DenV4V4SLqDhDA6G5Db-2Nliw_3ETapVb3REHbsOi2lY8W9NCDm5raYh6VpwPFQibbDoepRCy-0GkawMxNULt3SwpBaUH5-MavMDoz802DMhIx3W2Z2-XtajdfCA9Ar3c6ZttfGjddDLb7a4NGOkWN223ZcV13xNlfoDwtqporMf8tJ9YPjm6A2jjDGAYtqgJk6drd-v52ByGdI39BLDUTucRIp9-h66KJdFb_kaqTPCh1cPi-OMB0urLuL1idAeRP1N7ewfdiQHeJCV8gxGAAELD45d5cB5GMZ_xnrcjMGjKVUhEGH9zfoDCA5pXcd577fh6A05qHHzvPn_nf_wAAaV-z))
226226
- [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==))
227+
- [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/eJy1WWtz2zYW_SsY7WwrxdTLjjeNLGurOO5E09Tu2k4znThDQyQkoqZIlgCtaDXub997L8CXRdn9skpm-ADu-9wDgN62lFBKxpFqjb5sW9JvjYZOK-TRMuNL0Rq1vMznLael4iz18Ln_6jZir9hZnGxSuQw0a3sddjg4PHbYxW-z97MpO7u8-vXyanozu7zo4Vya_1F6IlLCZ1nki5TpQLBpwj242BGH_SZSdIQd9gasjRNuW3bsttU5IS2bOGMrvmFRrFmmBKiRii1kKJj45olEMxkxL14loeSRJ9ha6oBMWT3kDvvdKonnmsN8DhIJPC2qMxnXhev4C7RORv3-er3ucXK7F6fLfmgmq_7H2dn5xfV5F1wvxD5FIWSWpeLPTKYQ-HzDeAKeeXwO_oZ8zeKU8WUqYEzH6Pk6lVpGS4epeKHXPBWkx5dKp3Ke6Vrycj8h_uoESB-PIHHTaza7vm2xd9Pr2bVDej7Pbj5cfrphn6dXV9OLm9n5Nbu8gmJdvJ9hqeDpJza9-J39PLt47zABqQNT4luSYhTgqsS0Ct_k8FqImhuL2LilEuHJhfRYjiC2jB9EGkFYLBHpShqsgZM-6QnlSmqu6d1OcGSqfxvdRv-QkRdmvmBjL_PivkIRz13xpOdlweTpDJ_3F1nkoVYeTnbGlPb7OktCURvSQZop3fcFgCLsp3ztpmIhUgE4cj2udC9onv4AvroPwtNx2jwliJV-doLUIuUw2vfiLEIAuPmbF-brlEcKMr-qC1RFJBhPBV_R6_4rg8wfqWMCAULxUkQizpQbxvF9lrjiG4cyC0hrgeMf56kUC_ZerKBIYFILxYJ4jZiFiqL5uipmVCnTfXdYsNGorNhdyQk32L3WIvNr-hsUOmwdSC9gPAzjtSIqqLhQM8rZvdiQCb1JEKhcm0ZZUEU1W6TxipDmxRGSgEi_VyhD8x1SEmeaBfwBgQtmFjJVGmeDh5mnAb-kPp7_AYXNuaNJWRntLALWiTZsHaf3CwoBZdB5XmgAKYXE5kOsIgJOUCJFRMAdOMHBIQWERgRiglFFKGTDassD5g-AZZoNz39mIgWf5Er06plXAByhjG2u8oolXKZjMOug7ckdqU8FsoEgkLK7NtypOHWl7zAv4FEkws4dAx7Ki1JCwQcG9HS4gdhQ9KgrQrHCQlAfKlLepM8hfwE8qwRU52WJgDJtXcqKgJfALzAAAKrGcGeLpMpKfGhAF6ZLRJgrYmoPGg3ySvkGrmJA4jyUesOIWOJUmRx7QLZxgr0ngHpJ-W0LFyBAO6gCAs5xoDDpohSPI8gGei9z0jMQ0-uY2eQox2AdQ53HOjCADmzB_HqQ6KSp8B3l9M5YNSsLhmu9JM5IOHYBOEChLYCvJT2XhGvqZAy5GMMpa4LFCWP9PvvZxmiQi0uBBW4cjVgTSnL9SRrPhVEPlhmyM1KFPxpRDIWd541R2KCu0VYVQbnZBx5mwiUlpwxakesTosc-kJwXQm5McSvTABxzqddSCdpe8JSaCpTBJoMUMD8WKvqeKANciyQ4ZYFHiovOMWvdbXT26ezSfX9-9nF6de6-m918nl2fu2eXv_w6vZq--3jeLo13cufqsEVoEnIsDAmqCJNKoai-lEqLhryDAHgPZrfVI9UITS2ADRAilmClRvBwj_ZVSFw5lA1qvgGSPL0HuaDVtmV9lbFOb7Hahb0xKo34SmBtJzjkunZddRmhQcn_Qi5sp8Vpu9NGFFDvf4dudcw9ipJqxniWk8N3kPsFg0Kb1XM02l3a26ji5KkgsPUfgK7TKiyXQo8HkzaIdwwaPwOZK0IhpR6T3jPpwCTZ6VSBzq5-GTXpH76kXwmQ9wsDw7qBVOgsjZhdcDG8cSWHk7aJ6hUbHg3ZgfHBxP54Gz02Q-0p-ZWgM80g_m-QA_1zGVHP4BJZkClZyY0DBMFuAULS_hIQQZNLYe3F4scP1w4rnq4-XD9F5jyOwyokQSBHXBgAd1-Vz2mgnodoKBb6BYyCzl2Mgmo6gz0rmZaSFhztXUijBx122oh2NNHpUM4Rk2c27ybjeaaNAft7amC438CwMHBCohUDFuhVCwVIYUGABpVRG2BPCaV84HGlRhlRtnJBFnawCpL0mtJQpo-mQ-n1hhah4ndaWfm23aHDusPH_aJE1aVoydwg2hssjL8U2BRg7hHewffE7FX_Oh78E_YgHNYyTmeEwg5OOTVpfbqJ3poXQMIQXK2_t9WIX7HDR6dWmPJnNeTBb4u7vyVBQW4r93ul9vTd9gUzIeyjeeriDgGW7DHUoGklmWyb3m4fH_Ok521RO6eNy-pOGF0QHLYtK5UfDsDsUe5obeC1w35oGDgcHjts2DBwNICBgRkwUGr2rAQPekZP5NvRv3rHC4e9HvYO4XL4pjeEy9FR74cCXgQZZGDlzsVSRhVOWPF70LlzWGwbL_NZO6fP7SAPxLQs1AJ2R3LlGhYhL8eVXWEZrlNpgsmknRf6i820SXmP3Gx37GQzYG7zoa8Vvm1jx8tOXqYKm73swhbtfZFfc1Nw-3iS63nsdGwK8XuC2bm2K4l0alk9qFJKp2zt_9Deu_l4Y89j9kwOyyb3fWm-TpS7U6BTEdLXFWZXx2Bnv7fnKPLcWQIXyTjK6RM0N-3HzWnTrKcYAF8CsypdPWxUVngq3n4IF5t6RDDuzSFRtmjFkG0t6JXDIaCMHLMbZPwQhnahGE-FTHfB_6PXx39b6O3bt9A30DODQW6JvkJBmFjFTd6R-wPChR5jscd71S7C6iHptjtmdaWvUbtTCpSXr0Tkmxf59HxS51k_6tywgHb1n3FlIWvDz7lBqp76QOtwsoEmU1mo4fzDvXvcneHnLNqQJgAV5Iuqw5VvXVUcBLlN6nF7f7JP0OQ7KLJj19UyXXslqxkKTFhGkm5tYOh7u7pHkDBlcAKXcemoTecJOzgoOae67zJnbZAsRIBUds8QOT5PK_GUE8kLD3fH4zF-7TZfIszu2fYpvMbB3V0ZOdAxgkUnw_3TVXVXePhUuOSgRmOH9fkd1p0022nn0f4bxinloG8E97bhzGd8IygXxXTI79NMODntmL3VqXXM1hQTiDvBxiTewvtWfqDBi10lBvAO3rQc-j4jQziLFH_xaEUPnjc8PM6GMBwn2vw5pNUF1afewcHwDevy1AtO1cp9M2DdLmz-dJc2X77wuyFfzelvJKGcV3R6nhfCS3vogRdwDonuW49OPg6MWhuHbm89fqV__wPolNZF))
227228

228229
### `static_multimap`
229230

ci/pre-commit/example_links.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,17 @@ def update_readme_with_urls(readme_path, url_table, args):
8787
if file_name in line:
8888
# Look for the specific godbolt link format and replace the URL
8989
updated_line = re.sub(
90-
r"\(see \[live example in godbolt\]\(https?://[^\)]+\)\)",
90+
r"\(see \[live example in godbolt\]\(https?://[^\)]*\)\)",
9191
f"(see [live example in godbolt]({url}))",
9292
line
9393
)
94+
# Also handle empty godbolt links
95+
if updated_line == line:
96+
updated_line = re.sub(
97+
r"\(see \[live example in godbolt\]\(\)\)",
98+
f"(see [live example in godbolt]({url}))",
99+
line
100+
)
94101
if updated_line != line:
95102
mismatched_files.append(file_name)
96103

examples/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ ConfigureExample(STATIC_MAP_DEVICE_SIDE_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/sta
4848
ConfigureExample(STATIC_MAP_CUSTOM_TYPE_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/static_map/custom_type_example.cu")
4949
ConfigureExample(STATIC_MAP_COUNT_BY_KEY_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/static_map/count_by_key_example.cu")
5050
ConfigureExample(STATIC_MAP_PREALLOCATED_MEMORY_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/static_map/preallocated_memory_example.cu")
51+
ConfigureExample(STATIC_MAP_HETEROGENEOUS_LOOKUP_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/static_map/heterogeneous_lookup_example.cu")
5152
ConfigureExample(STATIC_MULTIMAP_HOST_BULK_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/static_multimap/host_bulk_example.cu")
5253
ConfigureExample(HYPERLOGLOG_HOST_BULK_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/hyperloglog/host_bulk_example.cu")
5354
ConfigureExample(HYPERLOGLOG_DEVICE_REF_EXAMPLE "${CMAKE_CURRENT_SOURCE_DIR}/hyperloglog/device_ref_example.cu")

0 commit comments

Comments
 (0)