// RCI loop while (rci_request != 0) if (rci_request == 1) // Compute A * x -> tmp (provided by solver) mkl_dcsrgemv("N", &n, A_val, A_row, A_col, tmp, tmp+n); else if (rci_request == 2) // Apply preconditioner: here Jacobi diagonal for (int i = 0; i < n; i++) tmp[n+i] = tmp[n+i] / diag[i];
If you are seeing errors like "libmkl_rt.dll not found" or "Cannot load libmkl_rt.so," it typically indicates a path or installation conflict: Intel Math Kernel Library (MKL) - Math.NET Numerics
It serves as a "dispatcher" that automatically detects your CPU and loads the most efficient computational kernels and threading models at runtime. Technical Overview