Skip to content

Latest commit

 

History

History
89 lines (74 loc) · 3.83 KB

ChangeLog.md

File metadata and controls

89 lines (74 loc) · 3.83 KB

ChangeLog

Here we list changes of Coek. More detailed information about incremental changes can be found in the commit history.

2.0

  • Adding support for builds with Spack
  • Rework of CMake specification of coek::coek to account for subpackage dependencies
  • coek_utils: Python utilities that work with coek
  • coek: Made strict inequalities a special case, to simplify core objects
  • coek: Reduced size of several core objects
  • coek: Optimized initialization of associative array objects
  • coek: Added support for model names
  • coek: Added coek-specific exceptions to tailor use of coek visitors
  • coek: Fixes for clang compiler
  • coek: Adding support for activate/deactivate in objectives and constraints
  • coek: Added tictoc and DataPortals logic
  • coek: Added new template type utilities
  • coek: Using std::to_string to standardize coek tests
  • coek: Suppress Gurobi license server output by default
  • coek: Added interface to Highs solver
  • coek: Added support for detailed solver results information
  • coek: Using size_t for unsigned integer values
  • coek: Deprecating C++14 tests (for now)
  • poek: Test updates based on standardized coek test outputs
  • pycoek: Various API additions to improve pyomo_coek compatibility with pyomo
  • pyomo_coek: Various changes to improve compatibility with pyomo
  • pyomo_coek: Added tests for compatibility with pyomo

1.4

  • Added support for multithreaded model creation.
  • Fixed bug with ASL missing constraint bounds
  • Added option logic to autograd class hierarchy
  • Added option to specify sparse Jacobian in CppAD interface
  • Added option to specify temporary directory for ASL AD interface
  • Added option to remove temporary NL file in ASL AD interface
  • Fixed model resolve logic to avoid explicit calls to reset()
  • Consolidated option management
  • Added if_else() function
  • Consolidated automatic differentiation tests
  • Generalized performance comparison graphs to use dates for the x-axis
  • Updated performance plots showing relative performance
  • Reworked expression walkers to remove use of visitor logic

1.3

  • Added ASL autograd functionality
  • Various fixes in expression management logic.
  • Improving support for C++14
  • Updates to support Python 3.11
  • Switch to use SHA256 hashes for third-party packages
  • Adding expression simplifier logic
  • Fixing many bugs with NL writer

1.2

  • Added the SubExpression object, which is used to denote
  • Revised the mutable_values() and find_vars_and_params() functions to avoid re-evaluating SubExpression objects.
  • Added the evaluate_expr() function, which avoids re-evaluating SubExpression objects.
  • Fixed errors in the ipopt interface; constraint bounds were not being propigated properly.
  • Tests added to confirm a fix in CppAD for expressions of the form 0/f(x).
  • Fix bugs with walkers, to ensure that PlusTerm objects are only iterated over their prefix
  • Fixing bug in symbolic differentation. Avoid double-counting when computing the in-degree.
  • Simplified the operators in the core COEK API classes.
  • Adding operators to avoid Variable->Expression coercion, which could happen frequently in practice.
  • Reworked sequence operators and extended this functionality to include the incides() function.
  • Major edits to use std::shared_ptr rather than explicit reference counting in Coek.
  • Added explicit management of variable naming as simple/lazy/eager.
  • Performance improvements via RVO.
  • Adding graphs to facilitate tracking of performance changes.

1.1.1

  • Revised build logic documentation.
  • Enabled ReadTheDocs documentation for both Coek and Poek.

1.1.0

  • Revised CMake logic to support an integrated build of this monorepo.
  • Adding make targets to format C++ and Python software.
  • Fixes to Gurobi interface
  • Revised github actions to test different configurations (e.g. with/out Python)

1.0

Initial public release.