AnimTestbed/3rdparty/vectorial
Martin Felis 94cc4aeb1d Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
..
bench Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
include/vectorial Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
spec Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
tools Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
.gitignore Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
.travis.yml Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
LICENSE Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
Makefile Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
README Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
vectorial.sln Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
vectorial.vcproj Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00
vectorialbenchmark.vcproj Added own camera object and its vectorial dependency. 2021-11-12 11:00:39 +01:00

README

    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