Skip to content

Commit dceac80

Browse files
author
Luca Geretti
authored
Merge pull request #388 from ariadne-cps/working
Release 2.0
2 parents 958dcfc + cbaf3f0 commit dceac80

File tree

497 files changed

+13114
-10502
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

497 files changed

+13114
-10502
lines changed

README.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,30 @@
66

77
Ariadne is a tool for reachability analysis and model checking of hybrid systems. Additionally, it is a framework for rigorous computation featuring arithmetic, linear algebra, calculus, geometry, algebraic and differential equations, and optimization solvers.
88

9-
* This repository contains the main development fork of the tool. For a more stable version with a less sophisticated user interface, see the *release-1.0* repository.
10-
* For the latest internal release, see the [releases](https://github.com/ariadne-cps/ariadne/releases) page. However, the code in the master branch should always be usable.
11-
129
### Installation ###
1310

14-
The installation instructions are presented for Ubuntu 18.04 and macOS 10.14 only. However, openSUSE Tumbleweed and Fedora 29 are known to be working when using their package managers. Windows installations are not supported yet.
11+
The installation instructions are presented for Ubuntu 20.04 and macOS 10.15 only. However, openSUSE and Fedora are known to be working when using their own package managers. Windows installations are not supported yet.
1512

1613
For the Ubuntu installation, we will refer to packages available on Aptitude. The macOS installation instead will assume you are using the Brew package manager.
1714

1815
The build system is CMake. The library is tested for compilation using gcc and clang.
1916

2017
#### Dependencies
2118

22-
The only required library dependencies of Ariadne are GMP and MPFR. If you want to enable the graphical output you will require Cairo in order to save into png files. Finally, the Python bindings require the Python headers (either Python 2 or 3 are supported). In particular for Python, there is an internal Git submodule dependency on the header-only [pybind11](https://github.com/pybind/pybind11) library. Therefore in order to fetch the dependency, Git must be installed.
19+
The only required library dependencies of Ariadne are GMP and MPFR. If you want to enable the graphical output you will require Cairo in order to save into png files. Finally, the Python bindings require the Python headers (either Python 2 or 3 are supported). In particular for Python, there is an internal Git submodule dependency on the header-only [pybind11](https://github.com/pybind/pybind11) library. Therefore in order to build the Python interface, Git must be installed even if Ariadne has been downloaded as an archive.
2320

2421
Finally, if you want to build the documentation, you need Doxygen and a working Latex distribution (including the Math packages).
2522

26-
Specific instructions for Ubuntu and macOS follow (documentation packages are excluded).
23+
Please note that adding new dependencies after preparing the build environment requires to re-run the CMake command.
24+
25+
Specific instructions for Ubuntu and macOS follow.
2726

2827
##### Ubuntu
2928
Aptitude packages: `cmake pkg-config git libgmp-dev libmpfr-dev libcairo2-dev`
3029

31-
Additional Aptitude package required for the Python interface: `python3-dev` or `python-dev`.
30+
Additional package required for the Python interface: `python3-dev` or `python-dev`.
31+
32+
Additional packages required for documentation: `doxygen doxygen-latex`
3233

3334
##### macOS
3435
1. Install the Command Line Developer Tools (will also be asked when installing Homebrew) from the Apple Store
@@ -41,6 +42,8 @@ For Cairo support, you may need to set up a permanent variable for the path of p
4142
export PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfig
4243
```
4344

45+
To allow building the documentation: `brew cask install mactex-no-gui` and `brew install doxygen`.
46+
4447
#### Building
4548

4649
To build the library in a clean way, it is preferable that you set up a build subdirectory:
@@ -91,6 +94,8 @@ To build the documentation, instead use:
9194
$ make doc
9295
```
9396

97+
You can access the built documentation from the `docs/html/index.html` file in the build directory.
98+
9499

95100
### Installing globally
96101

@@ -106,17 +111,17 @@ or
106111
$ sudo make install
107112
```
108113

109-
if you require administrator privileges, in particular for a Linux installation. Please note that the installation will build the whole distribution beforehand.
114+
if you require administrator privileges, in particular for a Linux installation. Please note that the installation will build the whole distribution beforehand, hence it is preferable that you first build the binaries without administrator privileges, then install.
110115

111-
To find the installed library under Ubuntu, you may need to set the LD_LIBRARY_PATH in the .bashrc file of your home directory:
116+
To find the installed library under Ubuntu, you may need to set the LD\_LIBRARY\_PATH in the .bashrc file of your home directory:
112117

113118
```
114119
export LD_LIBRARY_PATH=/usr/local/lib
115120
```
116121

117122
### Building executables using Ariadne
118123

119-
The tutorials directory contains three CMake projects that rely on a correct installation of Ariadne. You can copy a project directory in any place on your file system and follow the instructions on the README file inside to check that your installation was successful.
124+
The tutorials directory contains two CMake projects that rely on a correct installation of Ariadne. You can copy a project directory in any place on your file system and follow the instructions on the README file inside to check that your installation was successful.
120125

121126
Due to limitations of the C++ standard library on macOS since C++11, you won't be able to build an executable with GCC if the Ariadne library has been built using Clang, and viceversa. Hence on macOS you shall use the same compiler for both Ariadne and any projects that depend on it.
122127

cmake/FindKirk.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ find_path(KIRK_INCLUDE_DIR kirk/kirk-real-obj.h PATH_SUFFIXES kirk)
33
find_library(KIRK_LIBRARY kirk)
44

55
include(FindPackageHandleStandardArgs)
6-
find_package_handle_standard_args(KIRK DEFAULT_MSG KIRK_LIBRARY KIRK_INCLUDE_DIR)
6+
find_package_handle_standard_args(Kirk DEFAULT_MSG KIRK_LIBRARY KIRK_INCLUDE_DIR)
77

88
#Diagnostic messages
99
#message(KIRK_FOUND=${KIRK_FOUND})

doc/Doxyfile.in

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -755,6 +755,7 @@ WARN_LOGFILE =
755755
# Note: If this tag is empty the current directory is searched.
756756

757757
INPUT = source/ \
758+
tutorials/ \
758759
doc/
759760

760761
# This tag can be used to specify the character encoding of the source files
@@ -791,7 +792,11 @@ RECURSIVE = YES
791792
# run.
792793

793794
EXCLUDE = source/prototyping/ \
794-
source/experimental/
795+
source/experimental/ \
796+
source/algebra/vector-crtp.hpp \
797+
source/algebra/vector-sfinae.hpp \
798+
source/algebra/matrix-crtp.hpp \
799+
source/algebra/matrix-sfinae.hpp \
795800

796801
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
797802
# directories that are symbolic links (a Unix file system feature) are excluded
@@ -824,9 +829,9 @@ EXCLUDE_SYMBOLS =
824829
# that contain example code fragments that are included (see the \include
825830
# command).
826831

827-
EXAMPLE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/examples/ \
828-
@CMAKE_CURRENT_SOURCE_DIR@/examples/rigorous_numerics_tutorial.cpp \
829-
@CMAKE_CURRENT_SOURCE_DIR@/examples/hybrid_system_tutorial.cpp
832+
EXAMPLE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/tutorials/rigorous_numerics/ \
833+
@CMAKE_CURRENT_SOURCE_DIR@/tutorials/hybrid_evolution/ \
834+
@CMAKE_CURRENT_SOURCE_DIR@/python/tutorials/
830835

831836
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
832837
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
@@ -991,7 +996,7 @@ VERBATIM_HEADERS = NO
991996
# classes, structs, unions or interfaces.
992997
# The default value is: YES.
993998

994-
ALPHABETICAL_INDEX = NO
999+
ALPHABETICAL_INDEX = YES
9951000

9961001
# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
9971002
# which the alphabetical index list will be split.
@@ -1482,7 +1487,7 @@ MATHJAX_CODEFILE = @CMAKE_CURRENT_SOURCE_DIR@/doc/macros.js
14821487
# The default value is: YES.
14831488
# This tag requires that the tag GENERATE_HTML is set to YES.
14841489

1485-
SEARCHENGINE = NO
1490+
SEARCHENGINE = YES
14861491

14871492
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
14881493
# implemented using a web server instead of a web client using Javascript. There

doc/constraint_satisfaction.dox

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424

2525
/*! \file constraint_satisfaction.dox
26-
* \brief Documentation on nonlinear programming
26+
* \brief Documentation on solving constraint feasibility problems.
2727
*/
2828

2929
namespace Ariadne {
@@ -32,7 +32,8 @@ namespace Ariadne {
3232

3333
\page constraint_satisfaction_page Constraint Satisfaction
3434

35-
\todo This page has yes to be written. See the documentation on the \ref ConstraintSolverInterface for information.
35+
\todo This page has yes to be written. See the documentation on the \ref Ariadne::ConstraintSolverInterface "ConstraintSolverInterface" for information.
36+
3637

3738
*/
3839

0 commit comments

Comments
 (0)