RSVL - A Vectorization Library For C++

Note: This is a work in progress and currently only supports intel SSE and floating-point SSE instructions and is currently only available for C++.



RSVL For C++


RSVL is a vectorization library, meaning that is a library written specifically in order to allow programmers to perform operations on multiple variables at the same time.


You can basically treat the classes in this library like their non-SIMD counterparts in C++ WITH ONE EXCEPTION: You MUST CALL update() BEFORE ACCESSING THE DATA IN THE FLOAT ARRAY. Failure to do this will result in your code seeming like it does nothing.

Sample code:

Output: 2.3

If you have questions, concerns, or want features to be added (note that I have just recently started working on this), send me an e-mail at



This is the first version of rsvl. This version of rsvl only supports intel SSE and floating-point SIMD operations. This version of the library consists primarily of three classes: float2, float3, and float4, each of which overload all math-related operators (+, -, *, /, %, |, ^, ~, !, etc.) This version of the library does not contain many math and non-hardware-accelerated functions (however, it does contain mod, negate, abs, and nabs).