🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309967

Re: Mnożenie i dodawanie 64 bitowych liczb

#309967
From: Borneq
Date: Tue, 05 Nov 2019 14:54
19 lines
1856 bytes
W dniu 05.11.2019 o 13:58, Borneq pisze:
> W dniu 05.11.2019 o 13:02, Wojciech Muła pisze:
>> void add(uint64_t a, uint64_t b, uint64_t& lo, uint64_t& hi)
>> {
>>      hi += uint64_t(__builtin_uaddl_overflow(a, b, &lo));
>> }
> 
> Fajna funkcja __builtin_uaddll_overflow (dodałem jeszcze drugie l w 
> nazwie bo tak działała na 32 bitach w Clion (mingw) pod Windows)
> Ale..nie widzę jak można dodać taką funkcję w Visual C++
> 
> widzę ze jest coś takiego jak
> __MACHINEX64(unsigned char __cdecl _addcarry_u64(unsigned char, unsigned 
> __int64, unsigned __int64, unsigned __int64 *))

I sztuczka bazująca na żródłach MPIR, czyli porównuję, ale nie skaczę:
lo = a + b;
hi += lo < a;
ewentualnie tuning prędkosci dla lo < b, bo od obu ma byc mniejsze
Technical Details
Message-ID: <5dc18d0e$0$17348$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <5dc15d6b$0$551$65785112@news.neostrada.pl> <e5372521-e12e-4b7d-ad7d-f622d65962d9@googlegroups.com> <5dc171df$0$508$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: Mnożenie i dodawanie 64 bitowych liczb
Newsgroups: pl.comp.lang.c
References: <5dc15d6b$0$551$65785112@news.neostrada.pl> <e5372521-e12e-4b7d-ad7d-f622d65962d9@googlegroups.com> <5dc171df$0$508$65785112@news.neostrada.pl>
From: Borneq <borneq@antyspam.hidden.p>
Date: Tue, 5 Nov 2019 15:54:06 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <5dc171df$0$508$65785112@news.neostrada.pl>
Lines: 19
Message-ID: <5dc18d0e$0$17348$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 91.239.205.59
X-Trace: 1572965646 unt-rea-a-01.news.neostrada.pl 17348 91.239.205.59:65224
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit