Skip to content
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

core: replace MultiMap with standard library container #521

Open
mkviatkovskii opened this issue Nov 11, 2021 · 0 comments
Open

core: replace MultiMap with standard library container #521

mkviatkovskii opened this issue Nov 11, 2021 · 0 comments

Comments

@mkviatkovskii
Copy link
Member

mkviatkovskii commented Nov 11, 2021

Motivation
Currently Indigo uses own-written implementation of MultiMap instead of standard one. It does not contain any unique API that could not be replaced with standard container. Also it uses red-black trees even if we don't need the order of the keys, so we could also achieve performance improvement here.
The implementation could be found at core/indigo-core/common/base_cpp/multimap.h.

ToDo

  1. Find all places in code that use MultiMap<K, V>, check if K is trivially hashable and order of elements is required, and replace it with std::multimap<K, V> or std::unordered_multimap<K, V> depending on the situation.
@mkviatkovskii mkviatkovskii added this to the indigo-1.6 milestone Nov 11, 2021
@mkviatkovskii mkviatkovskii changed the title core: replace MultiMap with standard library container core: replace MultiMap with standard library container Nov 11, 2021
loimu pushed a commit that referenced this issue Nov 29, 2022
Partial implementation: replace MultiMap in MolfileLoader class
Implementation details: tested against both std::multimap and std::unordered_multimap. std::multimap implementation is by a small fraction but faster than std::unordered_multimap counterpart
loimu pushed a commit that referenced this issue Nov 30, 2022
Partial implementation: replace MultiMap in MoleculeRGroupsComposition class
loimu pushed a commit that referenced this issue Nov 30, 2022
Partial implementation: replace MultiMap in MoleculeRGroupsComposition class
MysterionRise added a commit that referenced this issue Dec 2, 2022
…groups_composition

Issue #521: core: replace MultiMap in MoleculeRGroupsComposition class
MysterionRise added a commit that referenced this issue Dec 2, 2022
…ader

Issue #521: core: replace MultiMap  in MolfileLoader class
loimu pushed a commit that referenced this issue Dec 5, 2022
Partial implementation: replace MultiMap in MoleculeRGroupsComposition class - Part 2
loimu pushed a commit that referenced this issue Dec 5, 2022
Partial implementation: remove MultiMap implementation from the project completely. Fixes #521
loimu pushed a commit that referenced this issue Dec 5, 2022
Partial implementation: replace MultiMap in MolfileLoader class
Implementation details: tested against both std::multimap and std::unordered_multimap. std::multimap implementation is by a small fraction but faster than std::unordered_multimap counterpart
loimu pushed a commit that referenced this issue Dec 5, 2022
Partial implementation: replace MultiMap in MoleculeRGroupsComposition class - Part 2
loimu pushed a commit that referenced this issue Dec 5, 2022
Partial implementation: remove MultiMap implementation from the project completely. Fixes #521
loimu pushed a commit that referenced this issue Dec 5, 2022
Partial implementation: replace MultiMap in MoleculeRGroupsComposition class - Part 2
loimu pushed a commit that referenced this issue Dec 5, 2022
Partial implementation: remove MultiMap implementation from the project completely. Fixes #521
loimu pushed a commit that referenced this issue Dec 6, 2022
Partial implementation: replace MultiMap in MoleculeRGroupsComposition class - Part 2
loimu pushed a commit that referenced this issue Dec 6, 2022
Partial implementation: remove MultiMap implementation from the project completely. Fixes #521
loimu pushed a commit that referenced this issue Dec 7, 2022
Partial implementation: replace MultiMap in MoleculeRGroupsComposition class - Part 2
loimu pushed a commit that referenced this issue Dec 7, 2022
Partial implementation: remove MultiMap implementation from the project completely. Fixes #521
loimu pushed a commit that referenced this issue Dec 7, 2022
Replace std::multimap with std::map of vectors. Fixes randomly failing composition/basic test due to incorrect ordering of elements
loimu pushed a commit that referenced this issue Dec 7, 2022
Replace std::multimap with std::map of vectors. Fixes randomly failing composition/basic test due to an incorrect ordering of fragments
loimu pushed a commit that referenced this issue Dec 7, 2022
Replace std::multimap with std::map of vectors. Fixes randomly failing composition/basic test due to an incorrect ordering of fragments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants