Skip to content

Commit

Permalink
Merge pull request #135 from lebarsfa/PR-codac1
Browse files Browse the repository at this point in the history
All configurations should now use GAOL
  • Loading branch information
SimonRohou authored Nov 17, 2024
2 parents 4f016fb + 322f8dc commit f9e677f
Show file tree
Hide file tree
Showing 21 changed files with 44 additions and 39 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/dockermatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@ jobs:
if [ ${{ matrix.cfg.deb }} = true ]; then \
#sudo sh -c 'echo \"deb [trusted=yes] https://packages.ensta-bretagne.fr/\$(if [ -z \"\$(. /etc/os-release && echo \$UBUNTU_CODENAME)\" ]; then echo debian/\$(. /etc/os-release && echo \$VERSION_CODENAME); else echo ubuntu/\$(. /etc/os-release && echo \$UBUNTU_CODENAME); fi) ./\" > /etc/apt/sources.list.d/ensta-bretagne.list' && \\
sudo apt-get -q update ; sudo apt-get -y install libeigen3-dev dpkg-dev || true && \
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20240417/libibex-dev-2.8.9.20240417-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb --no-check-certificate -nv && \
sudo dpkg -i libibex-dev-2.8.9.20240417-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb && \
rm -Rf libibex-dev-2.8.9.20240417-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb ; \
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb --no-check-certificate -nv && \
sudo dpkg -i libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb && \
rm -Rf libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_\$(dpkg --print-architecture).deb ; \
else \
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20240417/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv && \
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv && \
unzip -q ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip && \
rm -Rf ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip && \
sudo cp -Rf ibex/* /usr/ ; \
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/macosmatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
- run: brew install graphviz ; wget https://github.com/Homebrew/homebrew-core/raw/d2267b9f2ad247bc9c8273eb755b39566a474a70/Formula/doxygen.rb ; brew reinstall --formula ./doxygen.rb ; brew pin doxygen ; python -m pip install --upgrade pip ; pip install --upgrade wheel setuptools sphinx breathe sphinx_rtd_theme sphinx-tabs sphinx-issues sphinx-reredirects
if: runner.os=='macOS'
- run: |
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20240417/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv
unzip -q ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip
rm -Rf ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip
sudo cp -Rf ibex/* /usr/local/
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/unixmatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,23 +117,23 @@ jobs:
if: (matrix.cfg.runtime=='mingw13')
- run: |
choco install -y -r --no-progress eigen --version=3.4.0.20240224 ${{ matrix.cfg.choco_flags }}
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20240417/ibex.2.8.9.20240417.nupkg --no-check-certificate -nv
choco install -y -r --no-progress --ignore-dependencies -s . ibex --version=2.8.9.20240417 ${{ matrix.cfg.choco_flags }} --params "'/url:https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20240417/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip'"
del /f /q ibex.2.8.9.20240417.nupkg
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex.2.8.9.20241117.nupkg --no-check-certificate -nv
choco install -y -r --no-progress --ignore-dependencies -s . ibex --version=2.8.9.20241117 ${{ matrix.cfg.choco_flags }} --params "'/url:https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip'"
del /f /q ibex.2.8.9.20241117.nupkg
if: runner.os=='Windows'
- run: |
# Replace these 2 lines by the next ones to test a specific binary package of IBEX.
#sudo sh -c 'echo "deb [trusted=yes] https://packages.ensta-bretagne.fr/$(if [ -z "$(. /etc/os-release && echo $UBUNTU_CODENAME)" ]; then echo debian/$(. /etc/os-release && echo $VERSION_CODENAME); else echo ubuntu/$(. /etc/os-release && echo $UBUNTU_CODENAME); fi) ./" > /etc/apt/sources.list.d/ensta-bretagne.list'
#sudo apt-get -q update ; sudo apt-get -y install libibex-dev libeigen3-dev dpkg-dev || true
sudo apt-get -q update ; sudo apt-get -y install libeigen3-dev dpkg-dev || true
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20240417/libibex-dev-2.8.9.20240417-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb --no-check-certificate -nv
sudo dpkg -i libibex-dev-2.8.9.20240417-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb
rm -Rf libibex-dev-2.8.9.20240417-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb --no-check-certificate -nv
sudo dpkg -i libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb
rm -Rf libibex-dev-2.8.9.20241117-0${{ matrix.cfg.runtime }}0_$(dpkg --print-architecture).deb
shell: bash
if: matrix.cfg.deb==true
- run: |
brew install eigen
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20240417/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv
unzip -q ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip
rm -Rf ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip
sudo cp -Rf ibex/* /usr/local/
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/vcmatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ jobs:
- run: wget https://packages.ensta-bretagne.fr/choco/doxygen.install.1.9.6.nupkg --no-check-certificate -nv & choco upgrade -y -r --no-progress -s . doxygen.install --version=1.9.6 & del /f /q doxygen.install.1.9.6.nupkg & choco install -y -r --no-progress graphviz & python -m pip install --upgrade pip & pip install --upgrade wheel setuptools sphinx breathe sphinx-issues sphinx-tabs sphinx_rtd_theme sphinx-reredirects
if: runner.os=='Windows'
- run: |
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20240417/ibex.2.8.9.20240417.nupkg --no-check-certificate -nv
choco install -y -r --no-progress --ignore-dependencies -s . ibex --version=2.8.9.20240417 ${{ matrix.cfg.choco_flags }} --params "'/url:https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20240417/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip'"
del /f /q ibex.2.8.9.20240417.nupkg
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex.2.8.9.20241117.nupkg --no-check-certificate -nv
choco install -y -r --no-progress --ignore-dependencies -s . ibex --version=2.8.9.20241117 ${{ matrix.cfg.choco_flags }} --params "'/url:https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20241117/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip'"
del /f /q ibex.2.8.9.20241117.nupkg
- run: |
mkdir build ; cd build
cmake -E env CXXFLAGS=" /wd4267 /wd4244 /wd4305 /wd4996" CFLAGS=" /wd4267 /wd4244 /wd4305 /wd4996" cmake ${{ matrix.cfg.cmake_params }} -D CMAKE_INSTALL_PREFIX="../codac" -D WITH_PYTHON=ON ..
Expand Down
6 changes: 3 additions & 3 deletions doc/doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ In a nutshell, Codac is a **constraint programming framework** providing tools t
.. **Mobile robotics** has been the initial motivation of this project: the mathematical tools provided in Codac come together with robotic applications.
.. Computations stands on the `IBEX library <http://www.ibex-lib.org/>`_ that provides reliable tools for static systems.
.. Computations stands on the `IBEX library <https://github.com/ibex-team/ibex-lib>`_ that provides reliable tools for static systems.
Getting started: 2 minutes to Codac
Expand Down Expand Up @@ -254,8 +254,8 @@ Then you have two options: read the details about the features of Codac (domains
.. Figure:: img/logo_ibex.jpg
:align: center

| Note that Codac stands on the `IBEX library <http://www.ibex-lib.org/>`_ for interval analysis computations and static contractors on boxes.
| `Read the IBEX documentation. <http://www.ibex-lib.org/doc/>`_
| Note that Codac stands on the `IBEX library <https://github.com/ibex-team/ibex-lib>`_ for interval analysis computations and static contractors on boxes.
| `Read the IBEX documentation. <http://ibex-team.github.io/ibex-lib/>`_
.. .. rubric:: pyIbex
..
Expand Down
6 changes: 5 additions & 1 deletion doc/doc/install/01-installation-full-linux.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ In case you prefer the latest development version, Codac can be installed by com
Requirements
^^^^^^^^^^^^

Codac uses several features of the `IBEX library <http://www.ibex-lib.org/doc/install.html>`_ that you have to install first. The last version of IBEX is maintained on `this unofficial development repository <https://github.com/lebarsfa/ibex-lib/tree/master>`_:
Codac uses several features of the `IBEX library <https://ibex-team.github.io/ibex-lib/install.html>`_ that you have to install first. The last version of IBEX is maintained on `this unofficial development repository <https://github.com/lebarsfa/ibex-lib/tree/master>`_:

.. code-block:: bash
Expand All @@ -77,6 +77,10 @@ Codac uses several features of the `IBEX library <http://www.ibex-lib.org/doc/in
For further CMake options, please refer to the IBEX documentation.

.. warning::

GAOL prerequisite: On some platforms, you might need to install manually `MathLib <https://github.com/lebarsfa/mathlib>`_ and `GAOL <https://github.com/lebarsfa/GAOL>`_ with CMake and `specify where they are <https://ibex-team.github.io/ibex-lib/install-cmake.html#configuration-options>`_ to build IBEX successfully and have accurate computations.

.. admonition:: Debug/development mode

Note that the :code:`-DCMAKE_BUILD_TYPE=Debug` option will slightly slow down your computations, but display useful error messages in case of failure conditions such as access violations. **It is highly recommended** for your developments. To use it:
Expand Down
2 changes: 1 addition & 1 deletion doc/doc/manual/01-introduction/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ What about the IBEX library?
.. Figure:: ../../img/logo_ibex.jpg
:align: left

The `IBEX library <http://www.ibex-lib.org>`_ is a C++ software for constraint processing over real numbers.
The `IBEX library <https://github.com/ibex-team/ibex-lib>`_ is a C++ software for constraint processing over real numbers.
As for Codac, it stands on Constraint Programming but focuses on static contexts, providing reliable algorithms for handling non-linear constraints.

It also proposes various tools such as the *IbexSolve* and *IbexOpt* plugins that are dedicated to system solving and optimization, and come both with a default black-box solver and global optimizer for immediate usage.
Expand Down
2 changes: 1 addition & 1 deletion doc/doc/manual/02-variables/01-var-static.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Note also that they are not involved during the process of constraint propagatio
.. Figure:: ../../img/logo_ibex.jpg
:align: right

These static variables come from the `IBEX library <http://www.ibex-lib.org>`_. They are briefly presented here for the sake of consistency. For more information, please refer to the `IBEX documentation <http://www.ibex-lib.org/doc/interval.html#intervals-vectors-and-matrices>`_ for C++ use.
These static variables come from the `IBEX library <https://github.com/ibex-team/ibex-lib>`_. They are briefly presented here for the sake of consistency. For more information, please refer to the `IBEX documentation <https://ibex-team.github.io/ibex-lib/interval.html#intervals-vectors-and-matrices>`_ for C++ use.


.. _sec-manual-varstatic-vectors:
Expand Down
4 changes: 2 additions & 2 deletions doc/doc/manual/02-variables/02-var-dynamic.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ A simple temporal function [#f1]_ can be defined and used for building a traject
Interval tdomain(0.,10.); // temporal domain: [t_0,t_f]
Trajectory x(tdomain, TFunction("cos(t)+sin(2*t)")); // defining x(·) as: t ↦ cos(t)+sin(2t)

Usual functions such as :math:`\cos`, :math:`\log`, *etc.* can be used to define a ``TFunction`` object. The convention used for these definitions is the one of IBEX (`read more <http://www.ibex-lib.org/doc/function.html>`_). Note that the system variable :math:`t` is a predefined variable of ``TFunction`` objects, that does not appear in IBEX's objects.
Usual functions such as :math:`\cos`, :math:`\log`, *etc.* can be used to define a ``TFunction`` object. The convention used for these definitions is the one of IBEX (`read more <https://ibex-team.github.io/ibex-lib/function.html>`_). Note that the system variable :math:`t` is a predefined variable of ``TFunction`` objects, that does not appear in IBEX's objects.

The evaluation of a trajectory at some time :math:`t`, for instance :math:`z=x(t)`, is performed with parentheses:

Expand Down Expand Up @@ -472,7 +472,7 @@ Next pages will present several methods to use *tubes* that are envelopes of tra


.. rubric:: Footnotes
.. [#f1] In Codac, a ``codac::TFunction`` is the extension of IBEX's ``Function`` objects, for the dynamical case (see more `about IBEX's functions <http://www.ibex-lib.org/doc/function.html>`_).
.. [#f1] In Codac, a ``codac::TFunction`` is the extension of IBEX's ``Function`` objects, for the dynamical case (see more `about IBEX's functions <https://ibex-team.github.io/ibex-lib/function.html>`_).
.. admonition:: Technical documentation
Expand Down
6 changes: 3 additions & 3 deletions doc/doc/manual/03-domains/01-dom-intervals.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ The vectors :math:`\mathbf{x}` and matrices :math:`\mathbf{X}`, presented :ref:`
.. Figure:: ../../img/logo_ibex.jpg
:align: right

These interval variables come from the `IBEX library <http://www.ibex-lib.org>`_. They are briefly presented here for the sake of consistency. For more information, please refer to the `IBEX documentation <http://www.ibex-lib.org/doc/interval.html#intervals-vectors-and-matrices>`_ for C++ use.
These interval variables come from the `IBEX library <https://github.com/ibex-team/ibex-lib>`_. They are briefly presented here for the sake of consistency. For more information, please refer to the `IBEX documentation <https://ibex-team.github.io/ibex-lib/interval.html#intervals-vectors-and-matrices>`_ for C++ use.


.. _sec-manual-intervals-domains:
Expand Down Expand Up @@ -169,7 +169,7 @@ Intervals, boxes and interval matrices
.. _sec-manual-intervals-matrices:

* | ``IntervalMatrix`` is also available.
| One can refer to the `documentation of IBEX <http://www.ibex-lib.org/doc/interval.html#matrices-and-array-of-matrices>`_ for more information.
| One can refer to the `documentation of IBEX <https://ibex-team.github.io/ibex-lib/interval.html#matrices-and-array-of-matrices>`_ for more information.

.. note::
Expand Down Expand Up @@ -227,7 +227,7 @@ For boxes (interval vectors), we have to specify their dimension even in case of
Set operations
--------------

Set operations are available for ``Interval``, ``IntervalVector`` and ``IntervalMatrix`` objects (see the `official reference <http://www.ibex-lib.org/doc/interval.html#set-membership-operations>`_). In the following table, if :math:`[x]` is an interval object, :math:`d` is a real value.
Set operations are available for ``Interval``, ``IntervalVector`` and ``IntervalMatrix`` objects (see the `official reference <https://ibex-team.github.io/ibex-lib/interval.html#set-membership-operations>`_). In the following table, if :math:`[x]` is an interval object, :math:`d` is a real value.

==================================== =======================================================
Code Meaning
Expand Down
4 changes: 2 additions & 2 deletions doc/doc/manual/04-static-contractors/01-ctc-function.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Definition
.. Figure:: ../../img/logo_ibex.jpg
:align: right

This contractor originates from the `IBEX library <http://www.ibex-lib.org>`_. It is briefly presented here for the sake of consistency. For more information, please refer to the `IBEX documentation <http://www.ibex-lib.org/doc/contractor.html>`_ for C++.
This contractor originates from the `IBEX library <https://github.com/ibex-team/ibex-lib>`_. It is briefly presented here for the sake of consistency. For more information, please refer to the `IBEX documentation <https://ibex-team.github.io/ibex-lib/contractor.html>`_ for C++.


.. rubric:: Optimality
Expand Down Expand Up @@ -221,7 +221,7 @@ The above illustration reveals several contracted boxes with the new ``ctc_f`` c
Going further
-------------

This ``CtcFunction`` class is a generic shortcut to deal with :math:`\mathbf{f}(\mathbf{x})=\mathbf{0}` or :math:`\mathbf{f}(\mathbf{x})\in[\mathbf{y}]`. However, several algorithms exist to optimally deal with different classes of problems. A list of static contractors is provided in the IBEX library: `see more <http://www.ibex-lib.org/doc/contractor.html>`_.
This ``CtcFunction`` class is a generic shortcut to deal with :math:`\mathbf{f}(\mathbf{x})=\mathbf{0}` or :math:`\mathbf{f}(\mathbf{x})\in[\mathbf{y}]`. However, several algorithms exist to optimally deal with different classes of problems. A list of static contractors is provided in the IBEX library: `see more <https://ibex-team.github.io/ibex-lib/contractor.html>`_.
The user is invited to use an appropriate tool to deal with the constraint at stake.

The IBEX contractor behind ``CtcFunction`` is a ``CtcFwdBwd`` coupled with a ``Ctc3BCid``.
Expand Down
2 changes: 1 addition & 1 deletion doc/doc/tutorial-jnrr23/01-basics/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -459,4 +459,4 @@ We now have all the material to compute a solver for state estimation in the nex

.. rubric:: Footnotes

.. [#f1] C++ objects originates from the `IBEX library <http://www.ibex-lib.org>`_.
.. [#f1] C++ objects originates from the `IBEX library <https://github.com/ibex-team/ibex-lib>`_.
2 changes: 1 addition & 1 deletion doc/doc/tutorial/01-basics/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -443,4 +443,4 @@ We now have all the material to compute a solver for state estimation in the nex

.. rubric:: Footnotes

.. [#f1] C++ objects originates from the `IBEX library <http://www.ibex-lib.org>`_.
.. [#f1] C++ objects originates from the `IBEX library <https://github.com/ibex-team/ibex-lib>`_.
2 changes: 1 addition & 1 deletion doc/doc/tutorial/03-static-rangebearing/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ Problems involving complex equations can be broken down into a set of **primitiv
where :math:`a,b,\dots,e` are intermediate variables used for the decomposition. This constitutes a network made of the :math:`\mathcal{L}_{-}`, :math:`\mathcal{L}_{+}`, :math:`\mathcal{L}_{(\cdot)^2}`, and :math:`\mathcal{L}_{\sqrt{\cdot}}` elementary constraints.

| The library (more precisely: `the IBEX library <http://www.ibex-lib.org/doc/contractor.html>`_) provides a way to automatically make this decomposition, select already existing **elementary contractors** such as :math:`\mathcal{C}_{+}`, :math:`\mathcal{C}_{(\cdot)^2}`, :math:`\mathcal{C}_{\sqrt{\cdot}}` and build the complex contractor modeling the constraint :math:`\mathcal{L}_{\textrm{dist}}`.
| The library (more precisely: `the IBEX library <https://ibex-team.github.io/ibex-lib/contractor.html>`_) provides a way to automatically make this decomposition, select already existing **elementary contractors** such as :math:`\mathcal{C}_{+}`, :math:`\mathcal{C}_{(\cdot)^2}`, :math:`\mathcal{C}_{\sqrt{\cdot}}` and build the complex contractor modeling the constraint :math:`\mathcal{L}_{\textrm{dist}}`.
| This was implicitly done in the previous :ref:`Lesson A <sec-tuto-01>` with:
.. tabs::
Expand Down
Loading

0 comments on commit f9e677f

Please sign in to comment.