Use F2C return type convention for Accelerate framework
While debugging a MAGMA issue for Bandicoot, I came across the wisdom that the Accelerate framework behaves strangely for single-precision-return-valued functions specifically because it uses F2C linking conventions:
https://github.com/mcg1969/vecLibFort
I realized this could be a cleaner solution than the current workarounds, and could extend to more than just the Accelerate framework.
This is not ready for merge as-is, more of a proof of concept at this point. Two questions from my end:
- Is the detection in
compiler_setup.hpp
sufficient? I wrote some CMake infrastructure for Bandicoot (not yet committed anywhere) - I think that the wrapper library might need a little bit of adjustment... I don't think it's robust to someone switching out BLAS/LAPACK libraries behind-the-scenes... I think additional wrapper functions may be needed, what do you think?