fluid-engine-dev icon indicating copy to clipboard operation
fluid-engine-dev copied to clipboard

bug in void Matrix<T, M, N>::invert() in "include/detail/matrix-inl.h"

Open superbignut opened this issue 2 years ago • 1 comments

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.

superbignut avatar Oct 04 '23 08:10 superbignut

Thanks for reporting this! Let me take a look

doyubkim avatar Dec 24 '23 21:12 doyubkim