Article View: pl.comp.programming
Article #217322Re: Jak działa rotr16 w c?
From: osobli...
Date: Sun, 10 Jan 2021 16:07
Date: Sun, 10 Jan 2021 16:07
29 lines
3188 bytes
3188 bytes
środa, 6 stycznia 2021 o 13:10:02 UTC+1 fir napisał(a):
> poniedziałek, 4 stycznia 2021 o 13:28:40 UTC+1 osobli...@gmail.com napisał(a):
> > > > Chcę wiedzieć co tam jest robione
> > > Zajrzyj głębiej w źródła, by odszukać jak PCG zaimplementował swoje
> > > pcg_rotr_64().
> > Chyba jest już jasne. Autor w swojej publikacji pisze: rotate64(v,r) denotes an unsigned 64-bit bitwise clockwise rotation
> > of r bits on v (i.e., v clockwise r ). Czyli na pewno jest to na bitach, a nie na bajtach.
> lol, wiadomoz ze na bitach ale pytanie jest co ludzie rozumieja przez clockwize skoro bity w powszechnym pojeciu nie tworzą chyab zbyt okreslonego kolka...kiedys mowilo sie nie clockwize tylko w prawo
>
> - zeby takie prawo robilo clockwise to nawiasem mowiac bity musialybybyc numerowane antyclockwise bo ta operacja to przesuwanie w tyl
>
> przyznam ze sam z tymi konwencjami mam pewne poroblemy bo niekoniecznie te rozne konwencje orientacyjne sa chyba zawsze dobre w okreslonej sytuacji i jest tu do wyboru chyba sporo opcji do wyboru
Faktycznie wciąż pozostawia to pole do pewnych wątpliwości. Znalazłem kod na stronie:
#if PCG_HAS_128BIT_OPS
inline pcg128_t pcg_output_xsl_rr_rr_128_128(pcg128_t state)
{
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;
}
#endif
To jest chyba numpy, a w numpy rotr, to rotacja w prawo.
Technical Details
Message-ID:
<bb581028-6fb9-48a0-8a7d-98415311fc27n@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin2!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<8a8a225a-27cd-46c0-8869-9a12f004481en@googlegroups.com> <20210103182423.7ae8261c@mateusz> <8e3b1a88-cd14-4396-9a60-3c7afff72fbdn@googlegroups.com> <20210104093913.0130a132@mateusz> <9dc473bd-3683-4253-b727-9440584a9644n@googlegroups.com> <761d0f52-89dd-4703-b966-9b3eab5553cen@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 2002:a05:6214:15c1:: with SMTP id p1mr15667954qvz.8.1610294834075; Sun, 10 Jan 2021 08:07:14 -0800 (PST) X-Received: by 2002:a37:6611:: with SMTP id a17mr12919726qkc.150.1610294833838; Sun, 10 Jan 2021 08:07:13 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin2!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.programming Date: Sun, 10 Jan 2021 08:07:13 -0800 (PST) In-Reply-To: <761d0f52-89dd-4703-b966-9b3eab5553cen@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=185.186.156.102; posting-account=5sNFBgoAAAAxlae8lv99mPyGsDs6ynwB NNTP-Posting-Host: 185.186.156.102 References: <8a8a225a-27cd-46c0-8869-9a12f004481en@googlegroups.com> <20210103182423.7ae8261c@mateusz> <8e3b1a88-cd14-4396-9a60-3c7afff72fbdn@googlegroups.com> <20210104093913.0130a132@mateusz> <9dc473bd-3683-4253-b727-9440584a9644n@googlegroups.com> <761d0f52-89dd-4703-b966-9b3eab5553cen@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <bb581028-6fb9-48a0-8a7d-98415311fc27n@googlegroups.com> Subject: Re: Jak działa rotr16 w c? From: "osobli...@gmail.com" <osobliwy.nick@gmail.com> Injection-Date: Sun, 10 Jan 2021 16:07:14 +0000 Lines: 38 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit