-
Notifications
You must be signed in to change notification settings - Fork 28
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
Speed up coordgen, especially for very slow molecules #38
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, just a couple of requests for more braces :)
oh, bummer. It looks like the I'll back out that part of the change. |
This improves build stability by reducing the scope of rebuilds required when a header changes.
30cef9b
to
0004435
Compare
I pulled out the refactorings I was doing to try to understand things into a separate set of commits. This is now only the performance improvement, a test, and a change to remove some unused headers to speed up my rebuilds. |
@d-b-w, the CI builds failed, apparently, because of an unused variable (travis) and some |
Thanks, @ricrogz . I see 'em. |
When detecting clashes, do a rough binning of atoms. If both atoms for one bond are above both atoms of the other bond, they can't be a clash. This saves clash calculations for things that are obviously not clashes. It has an impact on big structures that are partially templated. (overall 15% speedup, but 40% improvement for the worst molecules in the test case. Also adds a simplistic test that the coordinates generated don't have crazy bond lengths.
Improve coordgen performance: #39
When detecting clashes, do a rough binning of atoms. If both
atoms for one bond are above both atoms of the other bond, they
can't be a clash. This saves clash calculations for things that
are obviously not clashes. It has an impact on big structures
that are partially templated. (overall 15% speedup, but 40%
improvement for the worst molecules in the test case.
coordgen is still slower than RDkit's native coordinate
generation, though.
Also adds a simple test that the coordinates generated don't
have crazy bond lengths. This would have caught my earlier
misunderstanding.