Skip to content

Releases: ariadne-cps/ariadne

v2.5.3

03 Jul 19:00

Choose a tag to compare

Legenda:

  • N: new feature

  • A: addition to a feature

  • C: change to the behavior of a feature

  • F: fixed feature

  • R: removed feature

  • #34 (N) Support multivalued functions (for Interval Taylor models support)

  • #328 (N) Add atan support for NormedAlgebra

  • #796 (N) Add Foundations module for (topo)logical notions

  • #569 (A) Adding multiple points simulator

  • #685 (A) Support ARM by making it properly fall into C99 rounding

  • #686 (A) Support GCC 12 on all platforms

  • #334 (C) Clean-up function models, notably template parameters

  • #337 (C) Rename partial functions to FunctionPatch

  • #665 (C) Remove Value, and use plain FloatXX as exact object

  • #666 (C) Template Float classes

  • #681 (C) Refactor the logger as a ConcLog logger submodule

  • #688 (C) Modify atan to avoid using long double, to support ARM architecture

  • #702 (C) Refactor the concurrency modules as a BetterThreads concurrency submodule

  • #788 (C) Add explicit suggest(...) for step-size suggestion to integrator classes

  • #698 (C) Use snprintf instead of the deprecated sprintf

  • #198 (C,F) Modify differential inclusion code to conform to other evolvers, fix reach set returned to be rigorous

  • #678 (F) Address warnings using AppleClang, which is now usable on C++20 Concepts code

  • #710 (F) Change use of char to short to address issue that ARM GCC char is unsigned

  • #735 (F) Fix bug in multiplication of Taylor models causing under-approximation of error

  • #741 (F) Fix fault in VectorFieldSimulator by using Approximation instead of Real step size

v2.4.1

07 Aug 12:19

Choose a tag to compare

Legenda:

N: new feature
A: addition to a feature
C: change to the behavior of a feature
F: fixed feature
R: removed feature

  • #357 (N) Introduce a TaylorSeriesBounderIntegrator, that identifies the bounds from the expansion without resorting to a Bounder initially
  • #613 (A) Add Python bindings for Variables2d, Projection2d fields, HybridEnclosure space accessors
  • #617 (A) Add is_polynomial_in predicate for symbolic expressions
  • #622 (A) Implement GradedTaylorPicardIterator that avoids initial use of Bounder
  • #626 (A) Allow 'none' graphics backend or drawer from CLI, to temporarily switch off graphics when desired
  • #628 (A) Implement some methods for Polynomial, in particular for vectors thereof
  • #636 (A) Add Python bindings for hybrid automaton target method
  • #642 (A) Add Python bindings for hybrid automaton name and symbolic expressions in dynamics/guards/invariants/resets
  • #643 (A) Add C++ and Python support for iteration through components of a CompositeHybridAutomaton
  • #612 (C) Remove unused legend from Gnuplot output
  • #639 (C) Use a finer (3/4) refinement strategy for the step size when computing a flow step based on an accuracy threshold
  • #616 (F) Fix behavior of unary symbolic expression predicates
  • #620 (F) EulerBounder did not reset the bounding domain between refinements to the step size
  • #631 (F) Conditional disabling of graphics in absence of both Cairo and Gnuplot was incorrect
  • #645 (F) Use only static const Generator objects, addressing linking issue for the whole library
  • #623 (R) Simplify IntegratorInterface with only one flow step, removing flow/flow_to and hiding flow_bounds

v2.3

24 May 15:51

Choose a tag to compare

Legenda:

N: new feature
A: addition to a feature
C: change to the behavior of a feature
F: fixed feature
R: removed feature

  • #538 (N) Introduce a concurrency module designed for parallel execution of internal tasks
  • #549 (N) Introduce a Least Recently Used cache utility for holding a limited number of homogeneous objects
  • #559 (N) Introduce an optional ariadne_main.hpp that offers an ariadne_main() function handling all header tasks for an executable
  • #562 (N) Introduce a command line interface class for acquiring CLI input arguments setting logger verbosity, theme and scheduler, along with concurrency, graphics backend and drawer
  • #561 (A) Add Python bindings for TaskManager in order to control concurrency
  • #570 (A) Add Python bindings for GraphicsManager in order to control drawer and graphics backend
  • #571 (A) Add Python bindings for Logger in order to expose (themed) logging
  • #599 (A) Add extra Python bindings for HybridEnclosure, add Python subscripting for ListSet
  • #602 (A) Add extra Python bindings for Enclosure, add Python bindings for Point2d for graphics
  • #605 (A) Add Python bindings for CommandLineInterface, to acquire arguments to a Python script
  • #551 (C) Make VectorFieldEvolver process sets in parallel (when splitting initially or during evolution)
  • #556 (C) Disallow unsafe default value of upper semantics for orbit methods
  • #565 (C) Draw lists of (Labelled/Hybrid)Enclosure in parallel
  • #563 (C) Rename the 'output' module into the 'io' module to support future classes related to input
  • #566 (C) Make HybridEvolver process sets in parallel (due to either splitting or multiple trajectories)
  • #573 (C) Use an LRU cache for modes in CompositeHybridAutomaton, avoid exhausting a given mode in HybridEvolver before changing mode
  • #580 (C) VectorFieldEvolver, IteratedMapEvolver and HybridEvolver now check that the initial enclosure is consistent
  • #592 (C) Enclosure now uses the global GraphicsManager drawer instead of having a dedicated configuration field
  • #595 (C) Modify examples to use ariadne_main function for simplicity, tutorials are not changed
  • #539 (F) A segmentation fault sometimes would be issued when terminating the executable, due to logging
  • #557 (F) Fix behavior of StopWatch utility for concurrent code, enhance the class for choosing a duration type
  • #567 (F) Fix problem with state_time space creation when state space already contains the 't' variable
  • #576 (F) Fix HybridEnclosure state_set() incorrectly working when an auxiliary function is present
  • #578 (F) Fix VectorFieldEvolver not storing the auxiliary mapping to the initial enclosure created from an expression set
  • #581 (F) Fix Enclosure splittings not carrying over the auxiliary mapping
  • #558 (R) Remove unnecessary IteratedMapEvolver::enclosure methods
  • #552 (R) Remove evolve/reach/reach_evolve methods from EvolverInterface, relying on orbit generation only
  • #553 (R) Remove ability to write an evolver object to the standard output, since it was implemented as a fixed string for all evolvers anyway

v2.2

25 Apr 19:12
7ffe625

Choose a tag to compare

Legenda:

  • N: new feature
  • A: addition to a feature
  • C: change to the behavior of a feature
  • F: fixed feature
  • R: removed feature

Changes:

  • #441 (N) Add support for Gnuplot output, including animated gif plot of sets and tridimensional plots for PDEs
  • #507 (N) Add a simulator for vector field dynamics
  • #514 (N) Add Python examples in python/examples
  • #509 (A) Additionally support a set as input in simulators, using the midpoint as the effective point
  • #513 (A) Add missing Python bindings for verify_safety in (Hybrid)ReachabilityAnalyser
  • #516 (A) Add missing Python bindings for Real predicates to be used in automata specification
  • #518 (A) Add missing Python bindings for evolver configuration and initial set assignment
  • #520 (A) Add missing Python bindings for plotting using HybridFigure
  • #543 (A) Add missing Python bindings for iterating across ListSet of Enclosure classes
  • #527 (A) Allow to draw a Labelled/Hybrid orbit directly to a Labelled/Hybrid figure
  • #492 (C) Modify SFINAE code to use C++20 concepts, currently preventing AppleClang compilation under macOS until the compiler supports Concepts
  • #529 (C) Disallow construction of VectorField and IteratedMap from a Function, since it was broken
  • #533 (C) Map<K,V> now checks for existing key using ARIADNE_ASSERT, yielding errors also for Release builds
  • #447 (F) Check that a VectorField is defined with dynamics for all involved variables, fixes a segfault within evolution
  • #532 (F) RealExpressionBoundedConstraintSet could be constructed in an incoherent way, due to missing checks
  • #211 (R) Remove various deprecated functions

v2.1

08 Mar 19:12

Choose a tag to compare

In this minor release we mainly addressed Python bindings, which now cover all layers of functionality up to hybrid evolution.
As a consequence, now C++ and Python tutorials mirror each other.

This is also the first release that comes with Homebrew and Aptitude packages for quick installation of the library.

v2.1-rc3

06 Mar 15:06

Choose a tag to compare

v2.1-rc3 Pre-release
Pre-release

Gives DEB packaging and supplies a different installation directory if run for Homebrew.

v2.1-rc2

05 Mar 17:03

Choose a tag to compare

v2.1-rc2 Pre-release
Pre-release

Offers DEB packaging and install Python bindings directly from the install command.

v2.1-rc1

25 Feb 16:40

Choose a tag to compare

v2.1-rc1 Pre-release
Pre-release

To be used for checking package usability for installation.

v2.0

18 Apr 10:12
dceac80

Choose a tag to compare

We are happy to announce the release of version 2.0 of Ariadne!

This release introduces a significant number of changes with respect to the previous major version, mainly:

  1. A more general and robust way of constructing hybrid automata;
  2. On-the-fly composition of systems;
  3. A hybrid simulator based on the classic Runge-Kutta method;
  4. Use of constraints in the evolution of hybrid systems;
  5. Algebraic-differential equations;
  6. Differential inclusions in the continuous space;
  7. Wider use of named variables and symbolic manipulation;
  8. Python bindings for most of the library.

In the process of transitioning from version 1.0 some functionality has not been migrated yet though:

  1. Verification routines;
  2. Parametric analysis;
  3. Use of BDDs for discretisation of reachable sets.

These will be targets for a next release, along with the completion of some functionality such as differential inclusions in the hybrid space and Python bindings for the dynamics module. From now on, the release cycle of Ariadne will be more frequent, in order to reflect API changes and new features.

The installation instructions and the tutorial have been updated accordingly.

1.9.2

20 Jan 10:57
5e9fa5d

Choose a tag to compare

1.9.2 Pre-release
Pre-release

This internal version introduces minor organization changes, along with improvements to the Python interface and the documented examples.