Skip to content

[WIP] Initial wrapper for blasfeo.#1

Open
apozharski wants to merge 4 commits into
JuliaEmbedded:masterfrom
apozharski:ap/initial-wrapper
Open

[WIP] Initial wrapper for blasfeo.#1
apozharski wants to merge 4 commits into
JuliaEmbedded:masterfrom
apozharski:ap/initial-wrapper

Conversation

@apozharski

@apozharski apozharski commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

This is properly beginning to interface blasfeo to julia. It should work with the current blasfeo_jll but I only tested it with the version built from the branch in this PR to Yggdrasil: JuliaPackaging/Yggdrasil#13933

Current design decisions

  • Implement four new types:
    • BlasfeoDvec <: AbstractVector{Cdouble}
    • BlasfeoSvec <: AbstractVector{Cfloat}
    • BlasfeoDmat <: AbstractMatrix{Cdouble}
    • BlasfeoSmat <: AbstractMatrix{Cfloat}
      and implement the required methods for basic functionality.
  • These structs are mutable so we can pass pointers to them to blasfeo_* ccalls, but all fields are const as users shouldn't manually change the values in them.
  • ...

Functions already using blasfeo specializations:

  • Constructors for matrices/vectors of fixed size and from Matrix/Vector
  • scalar get_index
  • scalar set_index!
  • fill!
  • copy

TODO:

  • Implement specializations for level1 blas operations
  • Implement specializations for level2 blas operations
  • Implement specializations for level3 blas operations
  • We may want to hook in to some of the lapack operation specializations in julia, but I will probably only do this as needed

Marked WIP because I at least want to finish the lvl1 blas and lvl2 blas specializations before we merge this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant