Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant performance improvements, adds new composition enumeration capabilities, and modernises the codebase, development workflow, and documentation for the
bsymproject. The most important changes include rewritten documentation, substantial speedups through vectorised operations and optimised data structures, a new feature for systematic exploration of composition ranges, updated Python version requirements, and enhanced development infrastructure.Documentation and usability improvements:
README.mdwith sections on requirements, installation (including development setup), testing, and example usage..readthedocs.yamlto use the new Python version and modern dependency specification for building documentation.Performance optimisations:
stacked_index_mappingsandunique_index_mappingsproperties, replacing individual loops with vectorised NumPy operations.np.int8arrays, achieving optimal balance of speed and memory efficiency with consistent byte-level representations throughout the codebase.Varying composition enumeration feature:
unique_configurations_by_compositionmethod to ConfigurationSpace class, enabling systematic exploration of composition ranges (e.g., A₄, A₃B, A₂B₂, AB₃, B₄ for binary systems).generate_partitionsfor integer partitioning,compute_mapping_vectorsfor species permutation mapping, andsatisfies_boundsfor occupancy constraint validation.Python version and dependency updates:
README.mdto reflect the new Python version requirement and modern installation practices.Development workflow and CI enhancements:
.coveragercfile.Type annotations and code modernisation: