256 bitove čísla sú fakt malé na gmp ... Čo tak použiť boost multiprecision?
Aha, no pro mě je 256 bitové číslo celkem velké :-D
Já se snažím držet C99 a tohle je C++

nevím, jestli se mám bát.
No pokud bych si měl vybrat mezi "naučit se C++" nebo "udělat si vlastní GNU MP", no...
(Celé jádro projektu je v C99 a jak to zmixovat...přepsání nepřichází v úvahu...ach jo.

)
Rozhodně děkuji za radu! Minimálně zkusím použít těch pár funkcí a uvidím, jak vychází časově.
generická varianta, která je fakt znatelně pomalejší?
Zkusím si opravit virtualko a pustit to na něm. No kdyby byl výsledek 5-8usec, budu si hrát s optimalizací instrukcí, takhle se obávám, že z 25 asi 3 neudělám :-( Nicméně to zkusím, máš pravdu.
....ach jo lidi...Jádro programu je násobení, dělení, sčítání a odčítání.
Přepsat tyhle funkce na AVX/FMA bych si troufl.
Jenže já tam potřebuju počítat i modulo, což je komplexní smyčka a odmocninu.
Karacubu jsem implementoval, ale udělat efektivně i dělení, poskládat z toho modulo, pak i odmocninu atd...

UF!

Jsem doufal, že mi napíšete "Jsi kokot, měl jsi zapnout přepínač -lgmp -fast" a tím by to běželo super rychle :-D
Přesněji řečeno jsem myslel, že jsem GNU MP v něčem nepochopil, něco dělám špatně a proto je to líné.
To, že je línější celé GNU MP z nějakého důvodu, to je horší varianta :-D