Skip to content

[newchem-cpp] Only load needed injection pathway data#478

Open
mabruzzo wants to merge 130 commits intograckle-project:newchem-cppfrom
mabruzzo:ncc/only_load_needed_pathways
Open

[newchem-cpp] Only load needed injection pathway data#478
mabruzzo wants to merge 130 commits intograckle-project:newchem-cppfrom
mabruzzo:ncc/only_load_needed_pathways

Conversation

@mabruzzo
Copy link
Collaborator

@mabruzzo mabruzzo commented Dec 28, 2025

To be merged after #464 has been merged


This PR stops loading unused injection pathway data

Previously, if we used metal chemistry, we loaded all injection pathway data. Now we just load what we need. Relatedly, when we index into an array and each member corresponds to a distinct injection pathway, index 0 is now always valid. (For context, when my_chemistry->multi_metals is 0, we would historically need to access the relevant data at the index specified by my_chemistry->metal_abundances.)

There is some unforunate consequences, but if we don't do this you end
up with some pretty confusing looking code... (the confusion primarily
arises if new_FrozenKeyIdxBiMap or drop_FrozenKeyIdxBiMap has different
behavior from other functions with similar names). I really think it
would be better to make this into a simple C++ class with a constructor
and destructor, but thats a topic for another time
There's still a lot of work to be done (the type is incomplete and isn't
filled by anything at all)
We don't yet use the new format, but we are just about ready to start
doing so
Also made a few assorted fixes
Both changes essentially affected 2 constants, which prior to this
commit were known as `keylen_max` & `invalid_val`.

The 2 contained constants are really just implementation details that
users of the inferface for `FrozenKeyIdxBiMap` shouldn't need to know
anything about
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant