Speedup mit tbb::concurrent_unordered_set

Die C++ Standard-Klassen std::set und std::map bzw. ihre unsortierten Varianten std::unordered_set und std::unordered_map (assoziative Container) sind nicht thread-safe. Eine thread-safe Alternative sind die entsprechenden Container aus der frei verfügbaren Intel-Bibliothek Threading Building Blocks (TBB). Dazu ein Beispiel: für eine FEM-Berechnung sei ein 3D-Modells mittels Tetraeder trianguliert. Üblicherweise wird das Gitter […]

Modulares Potenzieren

\(\newcommand{\Mod}[1]{\ \mathrm{mod}\ #1}\)Für einen Primzahltest (kleiner Fermatscher Satz) wird die Auswertung von$$a^{p-1} \Mod{p} , \qquad 0< a < p , \quad a,p \in \mathbb{N}$$ für große Zahlen $a$ und $p$ benötigt. Die naive Berechnung, bestimme erst $a^{p-1}$ und dann die Restklasse, ist aussichtslos: sind $a$ und $p$ 10-stellig, dann besitzt […]