Releases: amkrajewski/nimCSO
v0.6.6
Minor Changes:
- Main figure in
README
now 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 pinningnimcuda
to 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.x
to the currentstable
version 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.yamll
for improved consistency.
New Contributors
Full Changelog: v0.6.4...v0.6.5
v0.6.4
Minor Changes:
- Paper finalized for the JOSS submission.
- Automated
changelog
generation 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.ipynb
notebook explaining basics of usage, result interpretation, and some quick discussion of real results. - Added new
--singleSolution
/-ss
routine 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
geneticSearch
andmostCommon
. - Added ability to skip usage of
Arraymancer
if needed, with a simple-d:noarraymancer
flag. - Removed the
--development
/-d
flags 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
examples
directory with a QuickStart guide. - Added Codespaces environment definition through
Dockerfile
anddevcontainer.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
alloyList
todataList
andalloyN
todataN
to be more general.
Minor Changes:
- Improved terminal printouts.
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Major Changes:
- Finalized implementation of
bruteForceInt
workflow 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/runAll
script. - 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
, andpythonNumPy
in 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
nimCSO
library and our custombitArrayAutoconfigured
. -
The
geneticSearch
routine 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
algorithmSearch
andleastPreventing
. Improved past testing suites too.
Minor Changes:
- Created and added helper figures for
mutate
andcrosslink
functions. - Added convenience script
runAll
for 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