Unreal Engine BLAS


A continuation from my past attempt to create a better set of math algorithms for Unreal… this is kind of a tangent.
So far what it is becoming is a fully generalized STL implemented BLAS. I’m going to expose it to unreal eventually through a blueprint library, but I finished BLAS Level 1, and have implemented GEMV (which was a bear). In it’s current state it’s super untested, so let me know if you see something here that just isn’t right. I’m still relatively new to C++ so it wouldn’t shock me if this all caught fire after I turned my back.

As always, thanks for looking,

I implemented the 2nd level function ger, made massive readability edits, and reformatted the whole thing, and added way more templating… I’m not sure if this will end up hurting performance, but I’m doing what I can think to do to mitigate whatever I am sacrificing. Let me know if you see anything I could be doing better, or let me know if I’m overdoing it. Tomorrow I’m going to start exposing first level functions to Unreal Blueprints.

Well, after trying to roll my own templated blas and making a mess of things… I found out that what I’m trying to make already exists as a boost library called ublas. I’m very embarrassed that I didn’t realize it was there earlier.

So, I’m going to just file the code I’ve written under D for disappointment, and move on to the blueprint library, where I’ll just be putting together a blueprint interface for ublas.

Okay, it’s become very obvious to me that there is a pervasive issue with Unreal. I experienced library conflicts when I was implementing the OpenGL binding, and now I experience it again with the Boost library. Unreal uses a lot of macros that use commonplace words, the greatest offender being “check”. The problem with macros is likely best explained by Bjarne Stoustrup. Bjarne Stroustrup has been saying it for ages, do not use macros. (link below). The only reason you have macros in C++ is to maintain backwards compatibility with legacy C code, Stop programming like it’s the 1970’s. Anyway, I’ve also reported the bug (link below).

Bjarne Stoustrup on Macros
Bug Report