Releases: amkrajewski/nimCSO
v0.6.6
Minor Changes:
- Main figure in
READMEnow points to a permalink to display correctly outside GitHub (e.g., on the PyPI-like nimble.directory/pkg/nimcso) - This version addresses recent issues with
Arraymancer's CUDA dependency on certain machines by pinningnimcudato a slightly older version.
Full Changelog: v0.6.5...v0.6.6
v0.6.5
Major Changes
- Numerous improvements of the associated manuscript and tutorials as a part of the JOSS review process. These include some more general-audience analogies of underlying applications and should be more straightforward to grasp. E.g.,
[
nimcso's target application problems] also exists in everyday contexts, such as study of cooking ingredients, which interact in various recipes, giving rise to questions like "Given 100 spices at the supermarket, which 20, 30, or 40 should I stock in my pantry to maximize the number of unique dishes I can spice according to recipe?". Critically, this is not as simple as frequency-based selection because, e.g., removing less common nutmeg and cinnamon from your shopping list will prevent many recipes with the frequent vanilla, but won't affect those using black pepper.
- Improved testing pipeline, including version matrix on Linux from
1.6.xto the currentstableversion ofnim.
Minor Changes
- Improved documentation, including installation instructions and contribution guidelines.
- Updated benchmarking results against better-optimized Python implementations.
- Pre-commit checks in
.pre-commit-config.yamllfor improved consistency.
New Contributors
Full Changelog: v0.6.4...v0.6.5
v0.6.4
Minor Changes:
- Paper finalized for the JOSS submission.
- Automated
changeloggeneration for the documentation page based on the GitHub releases. - General documentation improvements.
Full Changelog: v0.6.3...v0.6.4
v0.6.3
Major Changes:
- Added
quickstart.ipynbnotebook explaining basics of usage, result interpretation, and some quick discussion of real results. - Added new
--singleSolution/-ssroutine for easy manual evaluation a single solution based on the elements provided as arguments after the flag. It can be neatly stacked on itself like:./nimcso -ss Ta W Hf Si -ss V W Hf Si --singleSolution Ta V
- Finalized the documentation and
README
Minor Changes:
- Improved printouts of several routines, including
geneticSearchandmostCommon. - Added ability to skip usage of
Arraymancerif needed, with a simple-d:noarraymancerflag. - Removed the
--development/-dflags deprecated sincev0.4.0.
Full Changelog: v0.6.2...v0.6.3
v0.6.2
Major Changes:
- Complete overhaul of the core documentation structure and content, in preparation for releasing it soon. Also, propagated to
README. - Added
examplesdirectory with a QuickStart guide. - Added Codespaces environment definition through
Dockerfileanddevcontainer.json, enabling one-click ready runtime with all dependencies installed.
Minor Changes:
- Navigation improvements in the documentation.
- Minor updates to the LICENSE, dotfiles, and other support files.
New Contributors
- @zikuiliu made his first contribution (0b48b36) by revising the manuscript
paper.md - @dovahkiin0022 made his first contribution (f018e2f) by revising the manuscript
paper.md, reviewing the code, and polishing details in the documentation - @lukeamyers made his first contribution (47f20d6) by fixing a typo in the
README
Full Changelog: v0.6.1...v0.6.2
v0.6.1
Major Changes
- Manuscript draft completed!
- Change
alloyListtodataListandalloyNtodataNto be more general.
Minor Changes:
- Improved terminal printouts.
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Major Changes:
- Finalized implementation of
bruteForceIntworkflow based on representing solutions as (compile-time optimized) fixed length array of integers (uint64). This sacrifices extensibility, limits the number of elements to 64, but is really high performance (400 times faster than native Python and 50 times faster than NumPy) brute force algorithm for finding the optimal solution for the problem of which N elements to remove from dataset to loose the least data. - All (1) supporting functions like
preventedData, (2) CLI interface, (3) testing routine, and (4) benchmarking were implemented for the above.
Minor Changes:
- Additional polishing of the API documentation all around. Now, everything has both pretty good what and why.
- Improved testing workflow and integration through the
tests/runAllscript. - Improved triggers for GitHub Actions.
Full Changelog: v0.5.1...v0.6.0
v0.5.1
Major Changes:
- Benchmarking directory was added comparing
nimCSO,pythonNative, andpythonNumPyin terms of speed and memory usage. Documentation explaining usage and expected results has been added alongside it.
Full Changelog: v0.5.0...v0.5.1
v0.5.0
Major Changes
-
Completed the documentation of all procedures across both the core
nimCSOlibrary and our custombitArrayAutoconfigured. -
The
geneticSearchroutine now exposes several settings allowing for customizing it to problems through scripting. These are:initialSolutionsN: Natural = 100,searchWidth: Natural = 100,maxIterations: Natural = 1000,minIterations: Natural = 10, andmutationsN: Natural = 1. -
Improved terminal printouts generated by all routines, for clean and easy visualization.

-
Added testing suites for
algorithmSearchandleastPreventing. Improved past testing suites too.
Minor Changes:
- Created and added helper figures for
mutateandcrosslinkfunctions. - Added convenience script
runAllfor running all tests with a quick:nim c -r -f -d:release --threads:off -d:configPath=tests/config.yaml tests/runAll
- Numerous general performance and style improvements around the codebase.
Full Changelog: v0.4.1...v0.5.0
v0.4.1
Major Changes:
- Import optimizations for 4 times faster (already super fast) compilation time.
- Manuscript updates.
- Testing workflow covering and reporting on 3 major targets:
Minor Changes:
- Comment and organization improvements
- Testing, documentation, and pdf-generating workflows were generally improved and use updated versions of actions.
Full Changelog: v0.4.0...v0.4.1