# New BLAS and LAPACK interfaces do not work well with Accelerate functions

**URL:** <https://forums.swift.org/t/new-blas-and-lapack-interfaces-do-not-work-well-with-accelerate-functions/71695>\
**Category:** Using Swift\
**Tags:** accelerate\
**Created:** [May 8, 2024, 12:58pm UTC](https://forums.swift.org/t/new-blas-and-lapack-interfaces-do-not-work-well-with-accelerate-functions/71695 "2024-05-08T12:58:10Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![tera](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/tera/32/38201_2.png) [@tera](https://forums.swift.org/u/tera)\
**Post date:** [May 9, 2024, 10:38am UTC](https://forums.swift.org/t/new-blas-and-lapack-interfaces-do-not-work-well-with-accelerate-functions/71695/3 "2024-05-09T10:38:06Z")

</div>

In the [previous thread](https://forums.swift.org/t/opaquepointer-errors-with-complex-functions-in-accelerate/71628/4) I suggested using a wrapper `cblas_cgemv_wrapper` that effectively "reverts" the API to what it was prior to `ACCELERATE_NEW_LAPACK=1` and `ACCELERATE_LAPACK_ILP64=1`. It's a bit pain to introduce such a wrapper (or a few if you need it for more than one function), but overall this seems the least painful solution. Note that the wrapper implementation doesn't need to use a pyramid of doom as it taking advantage of automatic "array to unsafe pointer function parameter" conversion done by Swift.

---

_[View the full topic](https://forums.swift.org/t/new-blas-and-lapack-interfaces-do-not-work-well-with-accelerate-functions/71695)._
