All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Note: This is the main Changelog file for the Rust solver. The Changelog file for the Python interface (opengen
) can be found in /open-codegen/CHANGELOG.md
v0.9.1 - 2024-08-14
- Order of dependencies in
Cargo.toml
fixes crate-not-found issue on Windows
v0.9.0 - 2024-03-20
- Rust implementation of epigraph of squared Euclidean norm (constraint)
- Implementation of
AffineSpace
- Clippy fixes
v0.8.1 - 2023-10-27
- Fix bug in implementation of
ball2.rs
(radius was being ignored for balls centered not at the origin)
v0.8.1 - 2023-10-27
- New constraint: sphere of Euclidean norm
v0.7.7 - 2023-01-17
- Change
time::Instant
toinstant::Instant
to support WASM
v0.7.6 - 2022-10-11
- Update functions in
AlmOptimizerStatus
v0.7.5 - 2022-06-22
- Fixed estimation of initial Lipschitz constant,
L
, when it is close to or equal to zero (e.g., Huber loss function) - Fixed issue in
AlmFactory
related to (F2) penalty constraints
v0.7.4 - 2021-11-15
- Optional feature
wasm
inCargo.toml
(WebAssembly support); see https://alphaville.github.io/optimization-engine/docs/openrust-features for details - Using
instant::Instant
instead ofstd::Instant
(Wasm-compatible) - Fixed Rust documentation of
Ball1
v0.7.3 - 2021-11-1
- Implementation of Simplex and Ball1 constraints in Rust
- Fix issue with simultaneous use of features
jem
andrp
v0.7.2 - 2021-10-27
- Removed unnecessary
#[no_mangle]
annotations - Took care of additional clippy warnings
- Bump versions:
cbindgen
:0.8 --> 0.20
andlibc
:0.2.0 -> 0.2.*
v0.7.1 - 2020-09-04
- Introduced
Halfspace
(implemented and tested) - Introduced
Hyperplane
(implemented and tested) - New types:
FunctionCallResult
,MappingType
andJacobianMappingType
- Various clippy-related code improvements
v0.7.0 - 2020-05-04
- ALM: compute cost value at solution
v0.6.2 - 2019-10-29
- Bug in codegen for Cartesian products (PR #147)
- Removed the use of
Default
in Rust (does not work for large slices) - Python: fixed typo in method
with_lfbgs_memory
- New support for C-to-Rust interface via bindgen
- Generation of example C code for C-to-Rust interface
- CMakeLists for auto-generated example in C
- Additional Python examples on web page
- Chat button in web page (for gitter)
- Added option
local_path
inwith_open_version
- Homotopy module in Rust is annotated as deprecated
- TCP server response is cast into Python objects (PR #144)
- Auto-generated code links to most recent crate, unless overriden
- Changed
jacobian
togradient
in Python
v0.6.1-alpha.2 - 2019-09-7
- TCP server: Malformed error JSON is now fixed
- Algorithm now returns
u_bar
, which is feasible (notu
)
- Introduced C interface to CasADi-generated C functions
- Rust and Python implementations of joint ALM/PM algorithms
- Rust docs for augmented Lagrangian method (ALM)
- Release of crate version
0.6.1-alpha.1
and0.6.1-alpha.2
- Introduced
#![allow(dead_code)]
in ALM implementation - New AKKT-compliant termination criterion
- Tolerance relaxation in penalty method
- Finite sets supported in Rust
- Rust/Python: setting CBFGS parameters
- Second-order cones supported in Rust
- Rust docs: support for equations with KaTeX
- Updated README
- Support for Python <3.6 (deprecated)
- Module
continuation
is going to become obsolete
v0.5.0 - 2019-06-22
- Fixed
with_max_duration
inPANOC
not following the builder pattern - Fixed misplaced
.unwrap()
in theHomotopyOptimizer
- Fixed so the Python builder uses the current directory as default
- Generation of C/C++ bindings added in the Python interface and included in the test suite
- Support in Rust for Cartesian product of constraints
- Deprecated:
enable_tcp_interface
andenable_c_bindings_generation
v0.4.0 - 2019-06-03
- Windows interoperability of
matlab_open_root()
closes #24 - Issues with file separator on Windows [#26 and #27]
- Handling corner cases such as wrong input parameters
- Rust: checking for
NaN
andInf
values in solution
- New Python interface for code generation (works with Python 2.7, 3.4 and 3.6)
- Homotopy method implemented in Rust
- TCP interface in Rust is generated automatically on request
- Support for OSX and linux distros on travis closes #25
- Continuous integration on Appveyor
- Experimental C bindings library
- Documentation for new Rust code and Python code
- Unit tests in Python using
unittest
- Rust API: Using
Option<>
andResult<>
to handle errors - Updated L-BFGS dependency; now using version
0.2
(no NonZeroUsize)
v0.3.1 - 2019-05-21
- An error in the Matlab codegen which made it inoperable
- Support for compiling for different targets
v0.3.0 - 2019-05-16
This is a breaking API change.
- A lot of internal fixes and clean up
PANOCEngine
andFBSEngine
is no longer explicitly needed- Simplified import system
- Cost functions now need to return a
Result<(), Error>
to indicate if the evaluation was successful
- Started an
examples
folder