-
Notifications
You must be signed in to change notification settings - Fork 152
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SymmetricMatrix::GetEigen memory corruption #59
Comments
This also replaces the O(n^3) sorting (!) algorithm used so far to emit eivenvalues/vector in descending order. UVAtlas/UVAtlas/isochart/SymmetricMatrix.hpp Lines 436 to 451 in 0437b92
So far if you called |
Embarassingly, I am wrong; Eigen also uses a O(n^3) sort:
|
The test at the start of
|
No, that check establishes that The opposite wouldn't make any sense because the goal of this function is to compute only |
OK, I'll take another look. I'll also integrate the opt-in use of the Eigen library to my CMakeList.txt, probably through a build option. For my vcpkg port, I should be able to make use of the eigen3 port for the dependency. This is certainly the more robust & reliable thing to use instead of the 'home-rolled' |
OK, I think the problem is that the algorithm in that header is trying to use
|
Fixed in this commit |
Added an opt-in build-option to CMake to support using the Eigen library. See this commit |
I found some memory corruption in the SymmetricMatrix::GetEigen function. I think it's caused by the following line:
UVAtlas/UVAtlas/isochart/SymmetricMatrix.hpp
Line 222 in 0437b92
In this for loop
i
goes up toi < dwDimension - 1
, butpEigenValue
is of sizedwMaxRange
, anddwMaxRange <= dwDimension
.I have a version that replaces that function with a call to the Eigen library here: chpatrick@d009630
The text was updated successfully, but these errors were encountered: