Skip to content

Releases: amkrajewski/nimCSO

v0.6.6

17 Oct 10:57
1cc89cc
Compare
Choose a tag to compare

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 pinning nimcuda to a slightly older version.

Full Changelog: v0.6.5...v0.6.6

v0.6.5

24 Sep 15:02
68b7c70
Compare
Choose a tag to compare

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 current stable version of nim.

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

  • @bdice made their first contribution in #4
  • @RMeli made their first contribution in #6

Full Changelog: v0.6.4...v0.6.5

v0.6.4

04 Mar 16:03
Compare
Choose a tag to compare

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

03 Mar 17:59
Compare
Choose a tag to compare

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 and mostCommon.
  • Added ability to skip usage of Arraymancer if needed, with a simple -d:noarraymancer flag.
  • Removed the --development/-d flags deprecated since v0.4.0.

Full Changelog: v0.6.2...v0.6.3

v0.6.2

01 Mar 20:05
Compare
Choose a tag to compare

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 and devcontainer.json, enabling one-click ready runtime with all dependencies installed.
    Open in GitHub Codespaces

Minor Changes:

  • Navigation improvements in the documentation.
  • Minor updates to the LICENSE, dotfiles, and other support files.

New Contributors

Full Changelog: v0.6.1...v0.6.2

v0.6.1

29 Feb 16:05
Compare
Choose a tag to compare

Major Changes

  • Manuscript draft completed!
  • Change alloyList to dataList and alloyN to dataN to be more general.

Minor Changes:

  • Improved terminal printouts.

Full Changelog: v0.6.0...v0.6.1

v0.6.0

27 Feb 20:41
Compare
Choose a tag to compare

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

27 Feb 16:15
Compare
Choose a tag to compare

Major Changes:

  • Benchmarking directory was added comparing nimCSO, pythonNative, and pythonNumPy 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

27 Feb 15:25
Compare
Choose a tag to compare

Major Changes

  • Completed the documentation of all procedures across both the core nimCSO library and our custom bitArrayAutoconfigured.

  • 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, and mutationsN: Natural = 1.

  • Improved terminal printouts generated by all routines, for clean and easy visualization.
    Screenshot 2024-02-25 at 22 52 08

  • Added testing suites for algorithmSearch and leastPreventing. Improved past testing suites too.

Minor Changes:

  • Created and added helper figures for mutate and crosslink 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

24 Feb 16:04
Compare
Choose a tag to compare

Major Changes:

  • Import optimizations for 4 times faster (already super fast) compilation time.
  • Manuscript updates.
  • Testing workflow covering and reporting on 3 major targets:
    MacOS Tests (M1) Linux (Ubuntu) Tests Windows Tests

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