Skip to content

1.6

Choose a tag to compare

@luk036 luk036 released this 17 Sep 05:26
· 178 commits to master since this release

Full Changelog: 1.5.3...1.6

Release Notes: ellalgo-cpp v1.6

Overview

This release includes performance improvements, expanded unit test coverage, build system fixes, and documentation updates. The changes enhance the stability, portability, and correctness of the Ellipsoid Algorithm implementation for linear programming.

πŸš€ New Features & Improvements

  • Performance tuning: Fine-tuned the core ellipsoid calculation algorithms for better efficiency.
  • Enhanced unit tests: Added comprehensive tests for edge cases, including handling of omega == 0.0.
  • Code formatting: Applied consistent formatting across the codebase using clang-format.
  • Documentation: Added GEMINI.md with build instructions and project overview.

πŸ›  Build System Updates

  • CMake policy enforcement: Added -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to ensure compatibility across platforms.
  • Windows build fixes: Resolved Windows-specific build issues.
  • macOS support: Fixed macOS build configurations.
  • Xmake support: Updated xmake.lua with improved flags and include paths.

βœ… Testing

  • Reactivated tests: Uncommented and restored multiple test cases in test_calc.cpp.
  • New test cases: Added tests for parallel cuts, bias cuts, and central cuts.
  • Matrix tests: Enhanced matrix operation tests with explicit value checks.

πŸ”§ Code Refactoring

  • noexcept specifiers: Added noexcept to move and copy constructors and calculation methods for better optimization.
  • Parameter passing: Changed function parameters from const double& to double for primitive types where appropriate.
  • Code clarity: Improved variable naming and intermediate value computation.

πŸ“„ Documentation

  • New GEMINT.md: Includes:
    • Project overview
    • Build instructions for both CMake and Xmake
    • Development conventions (coding style, testing, CI)

πŸ› Bug Fixes

  • Parallel cut logic: Fixed conditional checks in calc_parallel_bias_cut.
  • Matrix row and diagonal access: Corrected assertions in matrix unit tests.
  • LDLT factorization: Added a new test case for 5x5 symmetric positive definite matrices.

πŸ“¦ Dependencies

  • Continued use of CPM.cmake for dependency management.
  • Main dependencies: fmt and doctest.

πŸ”„ Continuous Integration

  • GitHub Actions workflows updated for better cross-platform support (Windows, macOS, Linux).

Contributors

  • luk036 (all commits)

Full Change Summary

  • 6 commits
  • 20 files changed
  • 1,372 additions and 1,127 deletions

For detailed code changes, refer to the full diff between tags 1.5.3 and 1.6.