You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the Inverse function there is a out-of-bounds array access that may cause hard faults on embedded hardware.
In Lapack/Src/dgetrf.c towards the end of the file the following loop will run for one to many iterations. (I.e. beginn and end at the wrong index)
for(int i = 1; i <= min(*m, *n); i++)
IPIV_d[i] = (double) ipiv[i];
Example if Matrix size is 9x9 min(*m, *n) will be 9. ipiv[i] and IPIV_d[i] will have a length of 9 each. Meaning they should be accessed from [0] to [8]. Instead [1] to [9] is used.
Fix should most likely look like this:
for(int i = 0; i < min(*m, *n); i++){
IPIV_d[i] = (double) ipiv[i];
}
The text was updated successfully, but these errors were encountered:
I've encountered this issue as well. It occurs in debug mode under the ARM system, but it doesn't exist in release mode. The error is "Segmentation fault (core dumped)".
In the Inverse function there is a out-of-bounds array access that may cause hard faults on embedded hardware.
In Lapack/Src/dgetrf.c towards the end of the file the following loop will run for one to many iterations. (I.e. beginn and end at the wrong index)
Example if Matrix size is 9x9
min(*m, *n)
will be 9.ipiv[i]
andIPIV_d[i]
will have a length of 9 each. Meaning they should be accessed from[0]
to[8]
. Instead[1]
to[9]
is used.Fix should most likely look like this:
The text was updated successfully, but these errors were encountered: