Skip to main content

Gradgen v0.5.1 brings new features and improvements

· One min read
Pantelis Sopasakis
Lecturer, QUB

Gradgen v0.5.1 brings second-order cones (SOCs), which are useful in convex optimization. It also brings significant improvements in the generated code leading to a more "economic" allocation of workspace memory. Earlier, workspace would almost always be required, whereas now we check whether the output variable can serve as workspace. More thorough unit testing is also done (we now have 538 unit tests running on GitHub Actions). This includes integration tests where we compare the results obtained by gradgen to sympy.

What's new in v0.5.0

· One min read
Pantelis Sopasakis
Lecturer, QUB

Gradgen v0.5.0 brings significant changes and new functionality. Most importantly, it brings us very close to a full integration with OpEn, this means that:

  • We'll be generating pure Rust code, fully embeddable (#[no-std]), safe, with support for both single and double precision arithmetic
  • The generated code for optimal control problems will be significantly shorter. This will decrease significantly the compilation times (from minutes to seconds)

Gradgen revival

· One min read
Pantelis Sopasakis
Lecturer, QUB

Welcome to this brand new website of gradgen: your Python module for automatic differentiation and truly embedded Rust code generation.

Gradgen v0.3 brings two significant changes:

  1. It has been redesigned to generate Rust crates, optionally marked with #[no_std] so you can use them directly in your embedded applications
  2. It comes with specialised code generation mechanisms for optimal control leading to Rust code that does not increase in size with the prediction horizon