.. _program_listing_file_include_embers_rand_lcgparkmiller_impl.h: Program Listing for File lcgparkmiller_impl.h ============================================= |exhale_lsh| :ref:`Return to documentation for file ` (``include/embers/rand/lcgparkmiller_impl.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved */ #ifndef _EMBERS_LCGPARKMILLER_IMPL_H_ #define _EMBERS_LCGPARKMILLER_IMPL_H_ #include #include namespace embers { namespace rand { __host__ uint32_t lcg_parkmiller(uint32_t *state) { uint64_t product = (uint64_t)*state * 48271; uint32_t x = (product & 0x7fffffff) + (product >> 31); x = (x & 0x7ffffffff) + (x >> 31); *state = x; return x; } } // namespace rand } // namespace embers #endif // _EMBERS_LCGPARKMILLER_IMPL_H_