Vector math library with NEON/SSE support
License
scoopr/vectorial
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
master
Could not load branches
Nothing to show
Could not load tags
Nothing to show
{{ refName }}
default
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
- Open with GitHub Desktop
- Download ZIP
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Vectorial - vector math library Motivation I couldn't find an open source math library that was usable and supported simd - especially the ARM NEON variant. Features Supports NEON, SSE, scalar and generic gcc vector extension. Most basic vector and matrix math is available, but not quite yet full featured. Design Vectorial consists of two main parts, pure-C wrapper around platform-specific vector instructions in the simd*.h files and C++ classes for common uses, the vec*.h and mat*.h The config.h autodetects approriate vector instructions to use. The platform-specific support is done with intrisincs only, allowing the compiler to have a full view of the code, hopefully resulting in better optimizations especially with reordering etc. Installation / Usage Add vectorial/include to your include path #include "vectorial/simd4f.h" for C-only simd wrapper, using it looks like this: simd4f v = simd4f_normalize( simd4f_add( simd4f_create(1,2,3,4), y) ); float z = simd4f_get_z(v); #include "vectorial/vectorial.h" for C++ classes. They reside in vectorial namespace, you might want to alias them to your own namespace namespace myproject { using namespace ::vectorial; // if you like different name: typedef vec3f Vector3; } using myproject::vec4f; vec4f v = normalize( vec4f(1,2,3,4) + y ); float z = v.z(); License 2-clause BSD. See LICENSE
About
Vector math library with NEON/SSE support
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published