🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Mnożenie i dodawanie 64 bitowych liczb

#309964
From: Borneq
Date: Tue, 05 Nov 2019 11:30
23 lines
1856 bytes
Mam x*y+a+b
Mnożenie używa intrin.h lub GCC 128 bitów według 
https://stackoverflow.com/questions/28868367/getting-the-high-part-of-64-bit-integer-multiplication

Teraz mam jeszcze dodanie dwóch liczb 64 bitowych do 128 bitowego 
rezultatu złożonego z dwóch zmiennych
przy dodawaniu albo nie nastąpi przepełnienie albo gdy nastąpi to 
starszy wyraz zwiększamy o 1,
można zrobić jakąś detekcję, gdy po dodaniu wynik jest mniejszy niż 
każdy ze składników, wystarczy chyba porównać z jednym dowolnym, to 
zwiększamy o 1, nie trzeba by nawet działać na 128 bitach, ale...
musiałbym użyć if, które chyba od Pentium jest wolne, bo niszczy 
potokowość instrukcji.
I czy lepiej
128+64
128+64

czy najpierw zsumować dwa mniejsze:
64+64 = 64 + carry
128+64+carry

Wolałbym nie robić wstawek w assemblerze, przy mnożeniu się udało, gdy 
korzystam z intrin.h , ale została jeszcze drobnostka dwóch dodawań.
Technical Details
Message-ID: <5dc15d6b$0$551$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Newsgroups: pl.comp.lang.c
X-Mozilla-News-Host: news://news.neostrada.pl:119
From: Borneq <borneq@antyspam.hidden.p>
Subject: Mnożenie i dodawanie 64 bitowych liczb
Date: Tue, 5 Nov 2019 12:30:51 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
Lines: 23
Message-ID: <5dc15d6b$0$551$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 91.239.205.59
X-Trace: 1572953451 unt-rea-a-02.news.neostrada.pl 551 91.239.205.59:63871
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit