dandy is an easy to integrate, single-header linear algebra vector library making use of expression templates for compile-time expression parsing -- as such, operations can be performed on complex vector expressions without the need for intermediary vector allocations.
- lightweight: a single header file with no non-standard external dependencies
- easy to integrate: all vector types can be accessed
either under the
dd
namespace or in the global namespace by addingusing namespace dd::types
to your source (note that this does not leak any additional symbols). See all types - supports conversions to and from arbitrary foreign types: in order to more easily integrate with other libraries. Read more
- expression templates: all vector expressions are parsed at compile-time. Read more
- STL integration: overloads for
std::ostream operator<<
,std::hash::operator()
and the inclusion of methodsbegin()
andend()
allows the vector to be used in a multitude of standard containers and algorithms
dandy requires C++17 or newer and has been formally tested on MSVC and CLANG.
Read the documentation here.
Use the provided CMakeLists.txt file to generate a project. Alternatively, if you're on Windows, you can use the provided make_vs.bat script to create the project under ./build