CodeProject, Seb James 20.03.2023, 09:51 Uhr

Mathematik in C++ mit morph::vvec

Die Header-Bibliothek morph::vvec erlaubt es, Vektormathematik ohne externe Bibliotheken zu betreiben.
(Quelle: GitHub.com)
Die reine Header-Bibliothek morphologica stellt einen Header namens vvec.h zur Verfügung, der einen Container variabler Grösse auf der Basis von std::vector mit einer Reihe nützlicher mathematischer Funktionen bereitstellt. Entwickler können damit ihre Vektoren einfach addieren, subtrahieren, elementweise multiplizieren/dividieren und Funktionen wie Renormierung, Randomisierung, Exponentiale und mehr anwenden.
Softwareentwickler Seb James hat morph::vvec entwickelt, um mathematische Operationen auf 1D-Arrays von Zahlen mit einer bequemen Syntax durchführen zu können. Die Idee war nicht, eine voll funktionsfähige lineare Algebra-Bibliothek zu erstellen, da es bereits viele davon gibt. Stattdessen sollte das Tool in der Lage sein, std::Vektoren von Zahlen zu erstellen und dann einfach mit diesen Vektorobjekten zu arbeiten.
Seb James wollte in der Lage sein, Vektoren zu addieren, zu multiplizieren (Hadamard/Elementweise), zu renormieren und Kreuz- und Skalarprodukte zu berechnen. All das wollte er tun, ohne auf eine kompilierte externe Bibliothek verweisen zu müssen. Aus dieser Idee entstand diese Klasse (und eine zugehörige Klasse morph::vec, die eine ähnliche Aufgabe für Arrays fester Grösse übernimmt).
In diesem Artikel stellt Seb James viele der Funktionen von morph::vvec vor und bringt Beispiele, die sich auf jedem C++17-kompatiblen Compiler kompilieren lassen sollten.



Das könnte Sie auch interessieren