Article View: pl.comp.lang.c
Article #309967Re: Mnożenie i dodawanie 64 bitowych liczb
From: Borneq
Date: Tue, 05 Nov 2019 14:54
Date: Tue, 05 Nov 2019 14:54
19 lines
1856 bytes
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-mailReferences:
<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