Article View: pl.comp.programming
Article #217319Re: Jak działa rotr16 w c?
From: Mateusz Viste
Date: Mon, 04 Jan 2021 08:39
Date: Mon, 04 Jan 2021 08:39
35 lines
2208 bytes
2208 bytes
2021-01-03 o 13:29 -0800, osobli...@gmail.com napisał: > niedziela, 3 stycznia 2021 o 18:24:30 UTC+1 Mateusz Viste napisał(a): > > rotr16() to nie C. > > > > Jeśli pytanie dotyczy specyficznego Microsoftowego rozszerzenia, to > > dokumentacja jest tutaj: > > https://docs.microsoft.com/en-us/cpp/intrinsics/rotr8-rotr16?view=msvc-160 > > To dotyczy tej pracy: > https://www.pcg-random.org/pdf/hmc-cs-2014-0905.pdf Tak, wiem. Ja tylko wskazuję na błędnie zadane pytanie: "Jak działa rotr16 w c". Otóż nie działa, bo nie ma czegoś takiego w C. > Tam są używane rotate64. Kod jednego z generatorów, który mnie > interesuje wygląda tak: > > uint32_t rot1 = (uint32_t)(state >> 122u); > uint64_t high = (uint64_t)(state >> 64u); > uint64_t low = (uint64_t)state; > uint64_t xored = high ^ low; > uint64_t newlow = pcg_rotr_64(xored, rot1); > uint64_t newhigh = pcg_rotr_64(high, newlow & 63u); > return (((pcg128_t)newhigh) << 64u) | newlow; Powyższy kod odwołuje się do funkcji pcg_rotr_64(). Sądząc po nazwie, to jest funkcja wchodząca w skład samego projektu. > Chcę wiedzieć co tam jest robione Zajrzyj głębiej w źródła, by odszukać jak PCG zaimplementował swoje pcg_rotr_64(). Mateusz
Technical Details
Message-ID:
<20210104093913.0130a132@mateusz>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!usenet.goja.nl.eu.org!aioe.org!nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org.POSTED!not-for-mailReferences:
<8a8a225a-27cd-46c0-8869-9a12f004481en@googlegroups.com> <20210103182423.7ae8261c@mateusz> <8e3b1a88-cd14-4396-9a60-3c7afff72fbdn@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!usenet.goja.nl.eu.org!aioe.org!nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org.POSTED!not-for-mail From: Mateusz Viste <mateusz@xyz.invalid> Newsgroups: pl.comp.programming Subject: Re: Jak działa rotr16 w c? Date: Mon, 4 Jan 2021 09:39:13 +0100 Organization: . . . Lines: 44 Message-ID: <20210104093913.0130a132@mateusz> References: <8a8a225a-27cd-46c0-8869-9a12f004481en@googlegroups.com> <20210103182423.7ae8261c@mateusz> <8e3b1a88-cd14-4396-9a60-3c7afff72fbdn@googlegroups.com> NNTP-Posting-Host: nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.9.2 X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.32; x86_64-suse-linux-gnu) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit