fluid-engine-dev
fluid-engine-dev copied to clipboard
bug in void Matrix<T, M, N>::invert() in "include/detail/matrix-inl.h"
Function invert() use four parts(search, swap, compute, scale) in a loop to solve the inverse of a matrix.
But the a(j, j) in the code "T c = 1 / a(j, j);" of the scale part sometimes equals to 0.
for example:
[[3,1,0],[2,1,1],[1,0,0]]
In my opinion, scale part need to be used after the loop to ensure all a(j,j)!=0.
Thanks for reporting this! Let me take a look