From 3225493f51ab1ac144f5c48ecfff1bde9d39b4cd Mon Sep 17 00:00:00 2001 From: Roland Schwan Date: Wed, 20 Nov 2024 22:50:54 +0100 Subject: [PATCH] workaround missing blasfeo_dtrcpsc_l symbol on skylake --- include/piqp/sparse/blocksparse_stage_kkt.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/piqp/sparse/blocksparse_stage_kkt.hpp b/include/piqp/sparse/blocksparse_stage_kkt.hpp index 89d1e73..4375bd8 100644 --- a/include/piqp/sparse/blocksparse_stage_kkt.hpp +++ b/include/piqp/sparse/blocksparse_stage_kkt.hpp @@ -972,7 +972,14 @@ class BlocksparseStageKKT : public KKTSystem blasfeo_dgead(m, m, delta_inv, AtA.D[i]->ref(), 0, 0, kkt_mat.D[i]->ref(), 0, 0); } else { // D_i = delta^{-1} * AtA.D_i, lower triangular +#ifdef TARGET_X64_INTEL_SKYLAKE_X + // blasfeo_dtrcpsc_l not implemented on Skylake yet + // and reference implementation not exported ... + kkt_mat.D[i]->setZero(); + blasfeo_dgead(m, m, delta_inv, AtA.D[i]->ref(), 0, 0, kkt_mat.D[i]->ref(), 0, 0); +#else blasfeo_dtrcpsc_l(m, delta_inv, AtA.D[i]->ref(), 0, 0, kkt_mat.D[i]->ref(), 0, 0); +#endif mat_set = true; } }