Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improves model code generation by collapsing cases with identical statements. I.e. ``` switch(a) case b: case c: statements; break; ``` instead of ``` switch(a) case b: statements; break; case c: statements; break; ``` For my current model of interest, containing many events, this significantly reduces the generated code: E.g.: ``` 16K my_model/deltasx.cpp 6,6M my_model_old/deltasx.cpp ``` Overall, for this model, I got from 204201 LOC down to 7936 LOC (i.e. -96%). * .. * Apply suggestions from code review Co-authored-by: Dilan Pathirana <[email protected]> * GHA: test python3.12 (#2179) Run nightly tests also on python3.12 * Deterministic order of event assignments (#2242) Ensure event assignments targets are processed in deterministic order. Otherwise the ordering of state variables may change between subsequent model imports, which we'd like to avoid. Closes #2241. * Fix AMICI hiding all warnings (#2243) Previously, importing amici would result in all warnings of the program being hidden, due to `logging.captureWarnings(True)`: ```sh $ python -c "import warnings; warnings.warn('bla');" <string>:1: UserWarning: bla $ python -c "import amici; import warnings; warnings.warn('bla');" $ ``` This can't be the desired default. Changes: * Default to not capturing warnings * If warnings are to be captured, at least handle them by amici loggers Closes ICB-DCM/pyPESTO#1252 --------- Co-authored-by: Dilan Pathirana <[email protected]>
- Loading branch information