Skip to content

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?

Merge request reports