🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217322

Re: Jak działa rotr16 w c?

#217322
From: osobli...
Date: Sun, 10 Jan 2021 16:07
29 lines
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-mail
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>

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