Archiv für das Tag 'C++'



Geant4 auf Scientific Linux 6.4 (Red Hat) installieren

Zemanta Related Posts Thumbnail

Geant4 ist ein in C++ geschriebenes Framework zur Simulation von Teilchenwechselwirkungen. Damit kann man zum Beispiel die Abschirmung von Raumsonden oder die Strahlungsdosis auf einen Patienten während einer Strahlentherapie simulieren. Ein mächtiges Programm und leider nicht immer einfach zu installieren, wenn man alle Elemente nutzen möchte. Ich möchte hier einen Weg zeigen, wie man Geant4 auf einem Scientific Linux 6.4 installiert. Ich beziehe mich hier… Weiterlesen

Maxwell-Boltzmann-Verteilung in C++

Maxwell-Boltzmann-Verteilung bei drei Temperaturen.

C++ bietet einige statistische Verteilung an, aber eine wichtige Verteilung der statistischen Physik – die Maxwell-Boltzmann-Verteilung wird nicht angeboten (zumindest konnte ich sie nicht finden), also habe ich mir selbst einen Generator für diese Verteilung geschrieben. Der Algorithmus ist nur wenige Zeilen lang: man würfelt ein Koordinatenpaar (Energie und Verteilungsdichte) und schaut ob der Wert der gewürfelten Verteilungsdichte kleiner als der Funktionswert der Maxwell-Boltzmann-Funktion ist…. Weiterlesen

Matrix invertieren in C++

Eine Matrix

Wie man eine Matrix mit Hilfe des Gauß-Jordan-Algorithmus invertiert habe ich bereits gezeigt. Nun habe ich versucht den vorgestellten Algorithmus in C++ umzusetzen. Als Ergebnis kam eine überschaubare Funktion mit einer Hilfsfunktion um zwei Zeilen in einer Matrix zu vertauschen. Ich habe die Funktion mit ein paar Matrizen ausprobiert und die Implementierung scheint zu funktionieren. Weitere Tests wären aber trotzdem zu empfehlen. Wie schnell die… Weiterlesen

C++11: Alternative Syntax für die Funktionsdeklarationen

C++

In dem neuen C++ Standard wurde eine alternative Syntax für Funktionen eingeführt. Diese erlaubt den Datentyp des Rückgabewertes am Ende des Funktionskopfes zu schreiben. Über die Bedeutung des Schlüsselwortes auto habe ich bereits geschrieben. In diesem Fall sorgt es dafür, dass der Kompiler die Deklaration auch solche erkennt. Für mich erscheint es an dieser Stelle überflüssig, aber ich vermute, dass der Grund auch an der… Weiterlesen

C++: explode, split, tokenize

C++

In PHP gibt es eine Funktion namens explode, die einen String anhand eines oder mehrerer Zeichen aufspaltet und als ein Array zurückgibt. Manchmal wird solch eine Funktion auch in C++ benötigt. Leider gibt es dafür keine native Implementierung. Es gibt zwar eine C-Funktion stdtok, aber die ist ziemlich unschön und gibt kein C++ Array zurück. Im Internet findet man viele brauchbare und wenig brauchbare Beispiele… Weiterlesen

Quadratwurzel mit Bisektion berechnen

Bisektion-Verfahren. Das Intervall zwischen L und H in der Mitte teilen und testen ob der Wert m unter- oder überschätzt wurde. Intervallgrenzen anpassen.

Im Folgenden werde ich zeigen, wie man relativ einfach die Umkehrfunktion einer monotonen Funktion berechnen kann. Als Beispiel nehme ich die Wurzelfunktion. Nehmen wir an, wie möchten die Wurzel von 10 berechnen. Wie geht man dabei vor? Wir kennen das Ergebnis nicht, aber wir können sagen in welchem Bereich es sich befindet. Der Betrag der Wurzel wird auf jeden Fall größer oder gleich der 0… Weiterlesen

Cache-Optimierung: Zeitliche und Räumliche Lokalität

Cache-Hierarchie.

Wenn man schnelle Programme schreiben möchte, so muss man auch die Funktionsweise der Hardware beachten, wie ich im Folgenden zeige werde. Nehmen wir an, es muss ein zweidimensionales Array vollständig durchlaufen werden. Dieser Fall trifft beispielsweise oft auf, wenn man Bildmanipulationen durchführt. Dazu ein minimales Beispiel. Es wird ein zweidimensionales Integer-Array erstellt und auf zwei unterschiedliche Weisen durchlaufen. In jedem Durchgang wird ein Wert in… Weiterlesen

Seite 1 von 512345