Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #34286

Re: Jak działa rotr16 w c?

From Mateusz Viste <mateusz@xyz.invalid>
Newsgroups pl.comp.programming
Subject Re: Jak działa rotr16 w c?
Date 2021-01-04 09:39 +0100
Organization . . .
Message-ID <20210104093913.0130a132@mateusz> (permalink)
References <8a8a225a-27cd-46c0-8869-9a12f004481en@googlegroups.com> <20210103182423.7ae8261c@mateusz> <8e3b1a88-cd14-4396-9a60-3c7afff72fbdn@googlegroups.com>

Show all headers | View raw


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

Back to pl.comp.programming | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Jak działa rotr16 w c? "osobli...@gmail.com" <osobliwy.nick@gmail.com> - 2021-01-03 07:07 -0800
  Re: Jak działa rotr16 w c? heby <heby@poczta.onet.pl> - 2021-01-03 16:21 +0100
    Re: Jak działa rotr16 w c? "osobli...@gmail.com" <osobliwy.nick@gmail.com> - 2021-01-03 07:34 -0800
  Re: Jak działa rotr16 w c? Mateusz Viste <mateusz@xyz.invalid> - 2021-01-03 18:24 +0100
    Re: Jak działa rotr16 w c? "osobli...@gmail.com" <osobliwy.nick@gmail.com> - 2021-01-03 13:29 -0800
      Re: Jak działa rotr16 w c? Mateusz Viste <mateusz@xyz.invalid> - 2021-01-04 09:39 +0100
        Re: Jak działa rotr16 w c? "osobli...@gmail.com" <osobliwy.nick@gmail.com> - 2021-01-04 04:28 -0800
          Re: Jak działa rotr16 w c? fir <profesor.fir@gmail.com> - 2021-01-06 04:10 -0800
            Re: Jak działa rotr16 w c? "osobli...@gmail.com" <osobliwy.nick@gmail.com> - 2021-01-10 08:07 -0800

csiph-web