-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
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
Problem in 4PCS implementation #1551
Labels
Comments
Thanks for the report! |
taketwo
added a commit
to taketwo/pcl
that referenced
this issue
Feb 24, 2016
This commit implements solution proposed by @Chungzuwalla in PointCloudLibrary#1551.
I think it's important to include the fix for the first issue in the release, so I made a pull request. Please submit a fix for the second issue as I don't have an opportunity to test it myself. |
SergioRAgostinho
pushed a commit
to SergioRAgostinho/pcl
that referenced
this issue
Aug 19, 2016
This commit implements solution proposed by @Chungzuwalla in PointCloudLibrary#1551.
Marking this as stale due to 30 days of inactivity. It will be closed in 7 days if no further activity occurs. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
at https://github.com/PointCloudLibrary/pcl/blob/master/registration/include/pcl/registration/ia_fpcs.h#L97
typedef std::vector <MatchingCandidate> MatchingCandidates;
Currently an assert is triggered inside Eigen when the vector allocates storage. MatchingCandidate contains an Eigen::Matrix4f member, which must be aligned at a 16-byte boundary. The fix is to use Eigen::aligned_allocator for the vector:
typedef std::vector <MatchingCandidate, Eigen::aligned_allocator<MatchingCandidate> > MatchingCandidates;
For details see http://eigen.tuxfamily.org/dox-devel/group__TopicStlContainers.html
at https://github.com/PointCloudLibrary/pcl/blob/master/registration/include/pcl/registration/impl/ia_fpcs.hpp#L181
`#ifdef _OPENMP
pragma omp flush (abort)
endif
MatchingCandidates candidates (1);`
Although this is valid, a compiler bug in VC++ 2015 will prevent compilation with OpenMP enabled:
https://stackoverflow.com/questions/35568653/why-doesnt-this-compile-vc-2015-pragma-omp-flush
A solution (other than waiting till Microsoft fix their broken compiler) would be to add a semicolon below the #pragma and above the declaration, with a comment indicating its purpose.
The text was updated successfully, but these errors were encountered: