Skip to content

Latest commit

 

History

History
115 lines (95 loc) · 11.3 KB

CHANGELOG.md

File metadata and controls

115 lines (95 loc) · 11.3 KB

Changelog

Each release lists the issues it addresses. The issue number is followed by the kind of feature (in parentheses) and a short description.

Legenda for the issue kind:

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

2.5

  • #34 (N) Support multivalued functions (for Interval Taylor models support)
  • #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
  • #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
  • #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

2.4.1

Date: 07/08/2021

  • #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

2.3

Date: 24/05/2021

  • #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

2.2

Date: 25/04/2021

  • #441 (N) Introduce support for Gnuplot output, including animated gif plot of sets and tridimensional plots for PDEs
  • #507 (N) Introduce a simulator for vector field dynamics
  • #514 (N) Introduce Python examples in python/examples
  • #538 (N) Introduce a concurrency module with basic primitives for parallel execution
  • #509 (A) Add support for 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) Change 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
  • #536 (F) Discrete evolution did not update the enclosure time, resulting in incorrect plots vs time
  • #211 (R) Remove various deprecated functions

2.1

Date: 09/03/2021

  • #412 (N) Supply Aptitude and Homebrew packages for installation
  • #267 (A) Complete Python bindings for dynamics and hybrid modules
  • #477 (C) Make the tutorials the same for C++ and Python

2.0

Date: 17/04/2020

First release.