From 54576cec3bf9bfd59d2ce742ba042c439f154b5a Mon Sep 17 00:00:00 2001 From: godardma Date: Thu, 15 Jan 2026 13:24:19 +0100 Subject: [PATCH 01/30] [tuto] working lessonA for matlab --- doc/manual/tuto/cp_robotics/src/lesson_A.m | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 doc/manual/tuto/cp_robotics/src/lesson_A.m diff --git a/doc/manual/tuto/cp_robotics/src/lesson_A.m b/doc/manual/tuto/cp_robotics/src/lesson_A.m new file mode 100644 index 000000000..1485a9edb --- /dev/null +++ b/doc/manual/tuto/cp_robotics/src/lesson_A.m @@ -0,0 +1,23 @@ +import py.codac4matlab.* + +% [A-q2-beg] +x_truth = Vector([2.,1.,PI/6.0]); +y_truth = Vector([6.,PI/6.0]); +m_truth = Vector([5.,6.2]); +% [A-q2-end] + +% [A-q3-beg] +x = cart_prod(Interval(-oo,oo),Interval(-oo,oo),x_truth(3)); +m = IntervalVector(m_truth).inflate(0.2); +y = IntervalVector(y_truth).inflate(Vector([0.3,0.1])); +% [A-q3-end] + +DefaultFigure().draw_box(m,Color().red()); +DefaultFigure().draw_tank(x_truth, 1, StyleProperties({Color().black(),Color().yellow()})); + +test = Interval(1,2) | Interval (3,4) + +% [A-q5-beg] +% DefaultFigure().draw_pie(x_truth.subvector(1,2), y(1), x_truth(3)+y(2), Color().red()); +% DefaultFigure().draw_pie(x_truth.subvector(1,2), y(1)|Interval(0,0), x_truth(3)+y(2), Color().light_gray()); +% [A-q5-end] \ No newline at end of file From cb688fb8a0edc00be411441db00fa36627ba729c Mon Sep 17 00:00:00 2001 From: lebarsfa Date: Wed, 21 Jan 2026 00:46:26 +0100 Subject: [PATCH 02/30] Add Raspbian Trixie armv6hf support --- .github/workflows/dockermatrix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dockermatrix.yml b/.github/workflows/dockermatrix.yml index bf9ccccad..7ad690f86 100644 --- a/.github/workflows/dockermatrix.yml +++ b/.github/workflows/dockermatrix.yml @@ -29,7 +29,7 @@ jobs: #- { img: 'lebarsfa/pi-64:focal-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: focal , cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 20.04 arm64' } - { img: 'lebarsfa/amd64:trixie-for-codac' , os: ubuntu-latest , shell: bash, arch: amd64 , bitness: 64, runtime: trixie , cmake_flags: '-fPIC', deb: true, desc: 'Debian Trixie amd64' } - { img: 'lebarsfa/pi-64:trixie-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: trixie , cmake_flags: '-fPIC', deb: true, desc: 'Debian Trixie arm64' } - #- { img: 'lebarsfa/pi:trixie-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: trixie , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Trixie armv6hf' } # No base image available... + - { img: 'lebarsfa/pi:trixie-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: trixie , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Trixie armv6hf' } - { img: 'lebarsfa/amd64:bookworm-for-codac' , os: ubuntu-latest , shell: bash, arch: amd64 , bitness: 64, runtime: bookworm , cmake_flags: '-fPIC', deb: true, desc: 'Debian Bookworm amd64' } - { img: 'lebarsfa/pi-64:bookworm-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: bookworm , cmake_flags: '-fPIC', deb: true, desc: 'Debian Bookworm arm64' } - { img: 'lebarsfa/pi:bookworm-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: bookworm , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Bookworm armv6hf' } From e585cdce10c4f422428aceb50de9773574074eaa Mon Sep 17 00:00:00 2001 From: lebarsfa Date: Fri, 20 Feb 2026 22:00:21 +0100 Subject: [PATCH 03/30] Update workflows --- .github/workflows/dockercentos.yml | 2 +- .github/workflows/dockermatrix.yml | 2 +- .github/workflows/macosmatrix.yml | 2 +- .github/workflows/tests.yml | 2 +- .github/workflows/unixmatrix.yml | 4 ++-- .github/workflows/vcmatrix.yml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/dockercentos.yml b/.github/workflows/dockercentos.yml index e81b929ac..71b2da456 100644 --- a/.github/workflows/dockercentos.yml +++ b/.github/workflows/dockercentos.yml @@ -22,7 +22,7 @@ jobs: - { img: 'lebarsfa/manylinux_2_28_aarch64-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: aarch64, bitness: 64, runtime: manylinux_2_28, docker_flags: '--platform linux/arm64', desc: 'CentOS manylinux_2_28 aarch64' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: true fetch-depth: 0 diff --git a/.github/workflows/dockermatrix.yml b/.github/workflows/dockermatrix.yml index 7ad690f86..7660553b3 100644 --- a/.github/workflows/dockermatrix.yml +++ b/.github/workflows/dockermatrix.yml @@ -42,7 +42,7 @@ jobs: #- { img: 'lebarsfa/pi:buster-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: buster , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Buster armv6hf' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: true fetch-depth: 0 diff --git a/.github/workflows/macosmatrix.yml b/.github/workflows/macosmatrix.yml index da66789bb..c3fb02cee 100644 --- a/.github/workflows/macosmatrix.yml +++ b/.github/workflows/macosmatrix.yml @@ -34,7 +34,7 @@ jobs: - { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.16', cpcfg: '-macosx_10_16_x86_64', py_v_maj: 3, py_v_min: 8 , desc: 'macOS Sequoia Python 3.8 x86_64' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: true fetch-depth: 0 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d85e07323..7d5cfe493 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: - { os: ubuntu-22.04 , gcc_v: 11, py_v_maj: 3, py_v_min: 10, with_capd: ON , desc: 'Ubuntu 22.04 GCC 11 Python 3.10 CAPD tests' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: true fetch-depth: 0 diff --git a/.github/workflows/unixmatrix.yml b/.github/workflows/unixmatrix.yml index 8750353d1..988e2f176 100644 --- a/.github/workflows/unixmatrix.yml +++ b/.github/workflows/unixmatrix.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest if: (github.event_name!='pull_request')&&((github.ref_name=='codac1')||(github.ref_name=='codac2')||(github.ref_name=='codac2_codac4matlab')) steps: - - uses: softprops/action-gh-release@v2 + - uses: softprops/action-gh-release@v3 id: create_release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -68,7 +68,7 @@ jobs: - { os: macos-14 , shell: bash, arch: x86_64 , bitness: 64, runtime: sonoma , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64 -D CMAKE_OSX_DEPLOYMENT_TARGET=14.0', cmake_flags: '-fPIC', cross: true, desc: 'macOS Sonoma x86_64 (cross)' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: true fetch-depth: 0 diff --git a/.github/workflows/vcmatrix.yml b/.github/workflows/vcmatrix.yml index 62b58767f..30435df55 100644 --- a/.github/workflows/vcmatrix.yml +++ b/.github/workflows/vcmatrix.yml @@ -35,7 +35,7 @@ jobs: - { os: windows-2022 , shell: cmd , arch: x64 , runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A x64' , cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 8 , desc: 'Windows Visual Studio 2022 x64 Python 3.8' } name: ${{ matrix.cfg.desc }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: true fetch-depth: 0 From 843827f39efd75aa1966fab225a0dbd1af9905d6 Mon Sep 17 00:00:00 2001 From: godardma Date: Sun, 19 Apr 2026 14:52:49 +0200 Subject: [PATCH 04/30] [doc] fixed capd doc organization (peibos_capd not displayed) --- doc/manual/manual/extensions/capd/capd.rst | 15 +- doc/manual/manual/extensions/capd/index.rst | 209 +------------------- 2 files changed, 16 insertions(+), 208 deletions(-) diff --git a/doc/manual/manual/extensions/capd/capd.rst b/doc/manual/manual/extensions/capd/capd.rst index 70db69213..40c23731e 100644 --- a/doc/manual/manual/extensions/capd/capd.rst +++ b/doc/manual/manual/extensions/capd/capd.rst @@ -12,7 +12,6 @@ To use CAPD with Codac, you first need to install the CAPD library. You can find Note that as CAPD is a C++ only library, the content present in this page is **only available in C++**. -.. _subsec-extensions-capd-capd-install: Installing the ``codac-capd`` extension --------------------------------------- @@ -52,6 +51,18 @@ The header of the ``codac-capd`` extension is not included by default. You need #include #include +Furthermore, you need to link the extension to your project, for instance by updating your ``CMakeLists.txt`` with:: + + add_executable(${PROJECT_NAME} main.cpp) + target_compile_options(${PROJECT_NAME} PUBLIC ${CODAC_CXX_FLAGS}) + target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC ${CODAC_INCLUDE_DIRS} ${CODAC_CAPD_INCLUDE_DIR}) + target_link_libraries(${PROJECT_NAME} PRIVATE + ${CODAC_LIBRARIES} + ${CODAC_CAPD_LIBRARY} # linking to the codac-capd extension + capd::capd # linking to CAPD + Ibex::ibex + ) + You can use the functions ``to_capd`` and ``to_codac`` to convert between CAPD and Codac objects as follows: .. tabs:: @@ -200,4 +211,4 @@ The result is the following figure, with in green the initial set (:math:`t=0s`) .. figure:: img/pendulum_result.png :width: 500px - Result of the CAPD integration of the pendulum, enclosed in a Codac tube. + Result of the CAPD integration of the pendulum, enclosed in a Codac tube. \ No newline at end of file diff --git a/doc/manual/manual/extensions/capd/index.rst b/doc/manual/manual/extensions/capd/index.rst index 17ccff750..a40271ca7 100644 --- a/doc/manual/manual/extensions/capd/index.rst +++ b/doc/manual/manual/extensions/capd/index.rst @@ -5,210 +5,7 @@ CAPD (rigorous numerics in dynamical systems) Main author: `Maël Godard `_ -This page describes how to use the CAPD library with Codac. CAPD is a C++ library for rigorous numerics in dynamical systems. +.. toctree:: -To use CAPD with Codac, you first need to install the CAPD library. You can find the installation instructions on the `CAPD website `_. - -Note that as CAPD is a C++ only library, the content present in this page is **only available in C++**. - - -Installing the ``codac-capd`` extension ---------------------------------------- - -To install the ``codac-capd`` extension, you need to install the Codac library from its sources. This can be done :ref:`by using CMake ` with the option ``WITH_CAPD=ON``. For example: - -.. code-block:: bash - - cmake -DCMAKE_INSTALL_PREFIX=$HOME/ibex-lib/build_install -DCMAKE_BUILD_TYPE=Release -DWITH_CAPD=ON .. - -We highly recommend to test the installation of the library with the provided tests. To do so, you can use the following command: - -.. code-block:: bash - - make test - - -Content -------- - -The ``codac-capd`` extension provides functions to convert CAPD objects to Codac objects and vice versa. - -The functions are ``to_capd`` and ``to_codac``. They can be used to convert the following objects: - -- ``capd::Interval`` :math:`\leftrightarrow` ``codac2::Interval`` -- ``capd::IVector`` :math:`\leftrightarrow` ``codac2::IntervalVector`` -- ``capd::IMatrix`` :math:`\leftrightarrow` ``codac2::IntervalMatrix`` -- ``capd::ITimeMap::SolutionCurve`` :math:`\rightarrow` ``codac2::SlicedTube`` - - -How to use ----------- - -The header of the ``codac-capd`` extension is not included by default. You need to include it manually in your code, together with the CAPD library: - -.. code-block:: c++ - - #include - #include - -Furthermore, you need to link the extension to your project, for instance by updating your ``CMakeLists.txt`` with:: - - add_executable(${PROJECT_NAME} main.cpp) - target_compile_options(${PROJECT_NAME} PUBLIC ${CODAC_CXX_FLAGS}) - target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC ${CODAC_INCLUDE_DIRS} ${CODAC_CAPD_INCLUDE_DIR}) - target_link_libraries(${PROJECT_NAME} PRIVATE - ${CODAC_LIBRARIES} - ${CODAC_CAPD_LIBRARY} # linking to the codac-capd extension - capd::capd # linking to CAPD - Ibex::ibex - ) - -You can use the functions ``to_capd`` and ``to_codac`` to convert between CAPD and Codac objects as follows: - -.. tabs:: - - .. code-tab:: c++ - - codac2::Interval codac_interval(0,2); // Codac interval [0, 2] - capd::Interval capd_interval = to_capd(codac_interval); // convert to CAPD interval - codac2::Interval codac_interval2 = to_codac(capd_interval); // convert back to Codac interval - - -Example -------- - -.. image:: img/pendulum.png - :alt: State variables of the pendulum - :align: right - :width: 130px - -For this example we will consider the pendulum with friction. - -The state variables of the pendulum are its angle :math:`\theta` and its angular velocity :math:`\omega`. The pendulum follows the following dynamic: - -.. math:: - - \left(\begin{array}{c} - \dot{\theta}\\ - \dot{\omega} - \end{array}\right)=\left(\begin{array}{c} - \omega\\ - -\sin(\theta)\cdot\frac{g}{l}-0.5\omega - \end{array}\right), - - -where :math:`g` is the gravity constant and :math:`l` is the length of the pendulum. - -This equation can be passed to the CAPD library as follows: - -.. tabs:: - - .. group-tab:: C++ - - .. literalinclude:: src.cpp - :language: c++ - :start-after: [codac-capd-2-beg] - :end-before: [codac-capd-2-end] - :dedent: 2 - -To solve this ODE, an ``IOdeSolver`` object is necessary. - -.. tabs:: - - .. group-tab:: C++ - - .. literalinclude:: src.cpp - :language: c++ - :start-after: [codac-capd-3-beg] - :end-before: [codac-capd-3-end] - :dedent: 2 - -CAPD then uses an ``ITimeMap`` to make the link between a time step and the solution of the ODE at this time. The ``I`` here stands for ``Interval`` as the solution is an interval guaranteed to enclose the solution. Here we will integrate the ODE between :math:`t_0=0s` and :math:`t_f=20s`. - -.. tabs:: - - .. group-tab:: C++ - - .. literalinclude:: src.cpp - :language: c++ - :start-after: [codac-capd-4-beg] - :end-before: [codac-capd-4-end] - :dedent: 2 - -To completly define the ODE, we need to define the initial conditions. Here we will set the initial angle to :math:`\theta_0=-\frac{\pi}{2}` and the -initial angular velocity to :math:`\omega_0=0`. For the purpose of this example, we will add a small uncertainty to the initial conditions. The initial conditions are then defined as follows: - -.. tabs:: - - .. group-tab:: C++ - - .. literalinclude:: src.cpp - :language: c++ - :start-after: [codac-capd-5-beg] - :end-before: [codac-capd-5-end] - :dedent: 2 - -There are then two ways to get the result of the integration depending on the use case. - -If the desired result is the solution of the ODE at a given time (here say :math:`T=1s`), we can do as follows: - -.. tabs:: - - .. group-tab:: C++ - - .. literalinclude:: src.cpp - :language: c++ - :start-after: [codac-capd-6-beg] - :end-before: [codac-capd-6-end] - :dedent: 2 - -**Be careful, this method modifies the initial set** ``s`` **in place**. - -If the desired result is the solution curve (or tube) of the ODE on the time domain :math:`[t_0,t_f]`, we can do as follows: - -.. tabs:: - - .. group-tab:: C++ - - .. literalinclude:: src.cpp - :language: c++ - :start-after: [codac-capd-7-beg] - :end-before: [codac-capd-7-end] - :dedent: 2 - -The variable ``solution`` is the desired solution curve (or tube). The operator ``solution(t)`` gives the solution at time :math:`t`. -It can be converted into a Codac ``SlicedTube`` with the function ``to_codac``. This functions takes two arguments: - -- the ``capd::ITimeMap::SolutionCurve`` to convert. -- a ``codac2::TDomain`` object defining the temporal domain of the tube. - -The resulting ``SlicedTube`` will have the same time domain as the one given in argument, completed with the CAPD gates. An example of conversion is : - -.. tabs:: - - .. group-tab:: C++ - - .. literalinclude:: src.cpp - :language: c++ - :start-after: [codac-capd-8-beg] - :end-before: [codac-capd-8-end] - :dedent: 2 - -A full display can be done with the following code: - -.. tabs:: - - .. group-tab:: C++ - - .. literalinclude:: src.cpp - :language: c++ - :start-after: [codac-capd-9-beg] - :end-before: [codac-capd-9-end] - :dedent: 4 - -The result is the following figure, with in green the initial set (:math:`t=0s`) and in red the final set (:math:`t=20s`). The ``SlicedTube`` is displayed in blue with a black edge for better visibility. The orange rectangles correspond to the gates (degenerate slices). - -.. figure:: img/pendulum_result.png - :width: 500px - - Result of the CAPD integration of the pendulum, enclosed in a Codac tube. \ No newline at end of file + capd.rst + peibos_capd.rst \ No newline at end of file From 966b8d8aee0e2e890cef88933ed20e60316da69f Mon Sep 17 00:00:00 2001 From: lebarsfa Date: Sat, 18 Apr 2026 16:25:18 +0200 Subject: [PATCH 05/30] python -m unittest discover codac.tests seems to need numpy and sympy --- doc/manual/manual/installation/python.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/manual/manual/installation/python.rst b/doc/manual/manual/installation/python.rst index 0cdcfeb2c..6aa230324 100644 --- a/doc/manual/manual/installation/python.rst +++ b/doc/manual/manual/installation/python.rst @@ -26,6 +26,7 @@ You can also update and test your Codac Python package: * **Testing the installation**: In order to verify that your installation is working properly in Python, you can run: .. code-block:: bash + pip install numpy sympy python -m unittest discover codac.tests From 05ec0e4320537c57f1725c6b4b49aab70a731660 Mon Sep 17 00:00:00 2001 From: lebarsfa Date: Sat, 18 Apr 2026 22:04:12 +0200 Subject: [PATCH 06/30] sphinx_togglebutton necessary for the manual --- .github/workflows/macosmatrix.yml | 2 +- .github/workflows/vcmatrix.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/macosmatrix.yml b/.github/workflows/macosmatrix.yml index c3fb02cee..683f9c234 100644 --- a/.github/workflows/macosmatrix.yml +++ b/.github/workflows/macosmatrix.yml @@ -54,7 +54,7 @@ jobs: # if: runner.os=='macOS' - run: brew install catch2 # Issues with binary packages when cross-compiling... if: (runner.os=='macOS')&&(matrix.cfg.cross!=true) - - run: brew install graphviz ; brew install --formula doxygen ; python -m pip install --upgrade pip ; pip install --upgrade wheel setuptools sphinx breathe sphinx_rtd_theme sphinx-tabs sphinx-issues sphinx-reredirects furo sphinx-math-dollar sympy + - run: brew install graphviz ; brew install --formula doxygen ; python -m pip install --upgrade pip ; pip install --upgrade wheel setuptools sphinx breathe sphinx_rtd_theme sphinx-tabs sphinx-issues sphinx-reredirects furo sphinx-math-dollar sphinx_togglebutton sympy if: runner.os=='macOS' - run: | wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv diff --git a/.github/workflows/vcmatrix.yml b/.github/workflows/vcmatrix.yml index 30435df55..3039da799 100644 --- a/.github/workflows/vcmatrix.yml +++ b/.github/workflows/vcmatrix.yml @@ -56,7 +56,7 @@ jobs: if: runner.os=='Windows' #- run: choco install -y -r --no-progress eigen --version=3.4.0.20240224 ${{ matrix.cfg.choco_flags }} # if: runner.os=='Windows' - - run: choco install -y -r --no-progress graphviz doxygen.install & python -m pip install --upgrade pip & pip install --upgrade wheel setuptools sphinx breathe sphinx-issues sphinx-tabs sphinx_rtd_theme sphinx-reredirects furo sphinx-math-dollar sympy + - run: choco install -y -r --no-progress graphviz doxygen.install & python -m pip install --upgrade pip & pip install --upgrade wheel setuptools sphinx breathe sphinx-issues sphinx-tabs sphinx_rtd_theme sphinx-reredirects furo sphinx-math-dollar sphinx_togglebutton sympy if: runner.os=='Windows' - run: | wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex.2.8.9.20250626.nupkg --no-check-certificate -nv From 5a26b4ebcc571c2339e02201291988e791f72547 Mon Sep 17 00:00:00 2001 From: lebarsfa Date: Sat, 18 Apr 2026 17:21:09 +0200 Subject: [PATCH 07/30] Add the same link to VIBes documentation when it is mentioned --- doc/manual/development/info_dev.rst | 2 +- doc/manual/manual/installation/cpp.rst | 6 +++--- doc/manual/manual/installation/matlab.rst | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/manual/development/info_dev.rst b/doc/manual/development/info_dev.rst index 0b55724d2..9e5c297df 100644 --- a/doc/manual/development/info_dev.rst +++ b/doc/manual/development/info_dev.rst @@ -135,7 +135,7 @@ If you simply want to use the latest Codac release in Python, you can download t cd $HOME/codac/examples/03_sivia python main.py - Note that before executing the example, you will have to launch the VIBes viewer. + Note that before executing the example, you will have to launch the `VIBes viewer <../visualization/vibes.html>`_. You should obtain a graphical output corresponding to a set inversion. diff --git a/doc/manual/manual/installation/cpp.rst b/doc/manual/manual/installation/cpp.rst index 9f0399474..0605e517d 100644 --- a/doc/manual/manual/installation/cpp.rst +++ b/doc/manual/manual/installation/cpp.rst @@ -145,7 +145,7 @@ Steps cmake .. make - Before executing the example, you will have to launch the VIBes viewer. Then, + Before executing the example, you will have to launch the `VIBes viewer <../visualization/vibes.html>`_. Then, .. code-block:: bash @@ -171,7 +171,7 @@ Using Visual Studio Download and extract *e.g.* ``codac_standalone_x64_vc17.zip`` (for Visual Studio 2022) from https://github.com/codac-team/codac/releases/latest, open ``example\CMakelists.txt``, choose ``x64-Release`` configuration in Visual Studio (instead of ``x64-Debug``), double-click on ``main.cpp`` in the Solution Explorer and then click on the green Start button, and finally check that the graphical output appears. -Note that in order to obtain graphical outputs, you will have to download and run https://github.com/ENSTABretagneRobotics/VIBES/releases/download/0.2.3/VIBes-0.2.3-win32.exe before running the project. +Note that in order to obtain graphical outputs, you will have to download and run https://github.com/ENSTABretagneRobotics/VIBES/releases/latest/download/VIBes-viewer_x86.exe before running the project. Install from the sources (latest developments) @@ -234,7 +234,7 @@ and check that the graphical output appears. For macOS 12 Monterey on a Mac with Apple silicon (arm64 processor), use ``codac_standalone_x86_64_monterey.zip`` for a Mac with an Intel processor (x86_64 processor), see https://support.apple.com/en-us/116943. -Note that in order to obtain graphical outputs, you will have to download and run https://github.com/ENSTABretagneRobotics/VIBES/releases/download/0.2.3/VIBes-0.2.2-osx.dmg before running the project. +Note that in order to obtain graphical outputs, you will have to download and run https://github.com/ENSTABretagneRobotics/VIBES/releases/latest/download/VIBes-viewer_x86_64.dmg before running the project. diff --git a/doc/manual/manual/installation/matlab.rst b/doc/manual/manual/installation/matlab.rst index 0fe6071fe..b23d31901 100644 --- a/doc/manual/manual/installation/matlab.rst +++ b/doc/manual/manual/installation/matlab.rst @@ -31,7 +31,7 @@ Once Codac is installed, you can use it in your MATLAB scripts using the followi Potential problem with VIBes ---------------------------- -One of the graphical outputs supported in Codac is `the VIBes viewer `_. +One of the graphical outputs supported in Codac is the `VIBes viewer <../visualization/vibes.html>`_. VIBes uses a client/server architecture and reads its configuration from the ``.vibes.json`` file located in your home directory (typically ``$HOME``). This file is automatically generated. If you launch MATLAB with ``sudo``, the ``HOME`` variable points to ``/root``, and VIBes will not find the ``.vibes.json`` file, causing the display to fail. From 9134ffee62829b74ddca61c4555e97727b0cbcdb Mon Sep 17 00:00:00 2001 From: lebarsfa Date: Sat, 18 Apr 2026 17:30:17 +0200 Subject: [PATCH 08/30] Mention BUILD_TESTS=ON for the unit tests to work --- doc/manual/development/info_dev.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/manual/development/info_dev.rst b/doc/manual/development/info_dev.rst index 9e5c297df..1aacd1db6 100644 --- a/doc/manual/development/info_dev.rst +++ b/doc/manual/development/info_dev.rst @@ -95,12 +95,12 @@ If you simply want to use the latest Codac release in Python, you can download t Note that you will then have to ``import codac2`` instead of ``import codac`` in your Python scripts. - In addition to the ``-fPIC`` options, you will have to configure ``WITH_PYTHON=ON`` and ``PYBIND11_FINDPYTHON=OFF``. Note that CMake will automatically get the `pybind11 `_ files required for the binding. + In addition to the ``-fPIC`` options, you will have to configure ``WITH_PYTHON=ON`` and ``PYBIND11_FINDPYTHON=OFF``. Note that CMake will automatically get the `pybind11 `_ files required for the binding. Also, you will have to configure ``BUILD_TESTS=ON`` if you want to run the unit tests. .. code-block:: bash mkdir build ; cd build - cmake -DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_C_FLAGS="-fPIC" -DWITH_PYTHON=ON -DPYBIND11_FINDPYTHON=OFF -DCMAKE_INSTALL_PREFIX=$HOME/codac/build_install -DCMAKE_PREFIX_PATH="$HOME/ibex-lib/build_install;$HOME/doxygen/build_install" -DCMAKE_BUILD_TYPE=Release .. + cmake -DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_C_FLAGS="-fPIC" -DWITH_PYTHON=ON -DPYBIND11_FINDPYTHON=OFF -DBUILD_TESTS=ON -DCMAKE_INSTALL_PREFIX=$HOME/codac/build_install -DCMAKE_PREFIX_PATH="$HOME/ibex-lib/build_install;$HOME/doxygen/build_install" -DCMAKE_BUILD_TYPE=Release .. make ; make install 4. **Configure your Python environment**: From 0f5dcb4408e8cf22ea2308889559ab95b06bb884 Mon Sep 17 00:00:00 2001 From: lebarsfa Date: Sat, 18 Apr 2026 17:31:18 +0200 Subject: [PATCH 09/30] Version updates and other updates in the documentation --- README.md | 6 +++--- doc/manual/development/info_dev.rst | 4 ++-- doc/manual/manual/installation/cpp.rst | 17 +++++++++++------ packages/choco/codac/codac.nuspec | 4 ++-- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index f6e21a60f..b6c20bc7a 100644 --- a/README.md +++ b/README.md @@ -81,8 +81,8 @@ This list is in alphabetical order by surname. - [Peter Franek](http://www.cs.cas.cz/~franek) - [Maël Godard](https://godardma.github.io) - [Nuwan Herath M.](https://members.loria.fr/NHerathMudiyanselage) -- [Luc Jaulin](https://www.ensta-bretagne.fr/jaulin) -- [Fabrice Le Bars](https://www.ensta-bretagne.fr/lebars) +- [Luc Jaulin](https://webperso.ensta.fr/jaulin) +- [Fabrice Le Bars](https://webperso.ensta.fr/lebars) - [Morgan Louédec](https://morgan-louedec.fr) - [Damien Massé](https://lab-sticc.univ-brest.fr/~dmasse) - [Bertrand Neveu](http://imagine.enpc.fr/~neveub) @@ -91,7 +91,7 @@ This list is in alphabetical order by surname. - [Simon Rohou](http://simon-rohou.fr/research) - [Joris Tillet](https://perso.ensta-paris.fr/~tillet/) - [Gilles Trombettoni](https://www.lirmm.fr/~trombetton) -- [Christophe Viel](https://www.ensta-bretagne.fr/viel/) +- [Christophe Viel](https://webperso.ensta.fr/viel/) - [Raphael Voges](https://raphael-voges.de) We appreciate all contributions, whether they are code, documentation, bug reports, or suggestions. If you believe you should be listed here and are not, please contact us to update the list. diff --git a/doc/manual/development/info_dev.rst b/doc/manual/development/info_dev.rst index 1aacd1db6..ceddec0ec 100644 --- a/doc/manual/development/info_dev.rst +++ b/doc/manual/development/info_dev.rst @@ -41,8 +41,8 @@ If you simply want to use the latest Codac release in Python, you can download t sudo apt-get install -y g++ gcc cmake git flex bison - - a supported version of Python (>=3.6). - - a recent `Doxygen `_ version (for instance, release 1.13.0 or newest). On Linux systems, latest releases are not available as Debian packages, so we advice to install Doxygen from the sources: + - a supported version of Python (>=3.8). + - a recent `Doxygen `_ version (for instance, release 1.16.1 or newest). On Linux systems, latest releases are not available as Debian packages, so we advise to install Doxygen from the sources: .. code-block:: bash diff --git a/doc/manual/manual/installation/cpp.rst b/doc/manual/manual/installation/cpp.rst index 0605e517d..cd5169aaa 100644 --- a/doc/manual/manual/installation/cpp.rst +++ b/doc/manual/manual/installation/cpp.rst @@ -163,7 +163,11 @@ Install from packages (latest release) Using MinGW ~~~~~~~~~~~ -Check https://community.chocolatey.org/packages/codac. +.. Check https://community.chocolatey.org/packages/codac. + +Install `Chocolatey package manager `_, run `choco install -y ibex cmake make qtcreator` in PowerShell and then download and extract *e.g.* ``codac_standalone_x64_mingw13.zip`` (for MinGW 13) from https://github.com/codac-team/codac/releases/latest, launch Qt Creator and choose Open Project, open ``example\CMakelists.txt``, ensure Desktop is selected and click Configure Project (might be hidden behind notifications at the bottom-right), wait 10 s then click on the big bottom-left green Run button, and finally check that the graphical output appears. + +Note that in order to obtain graphical outputs, you will have to download and run https://github.com/ENSTABretagneRobotics/VIBES/releases/latest/download/VIBes-viewer_x86.exe before running the project. Using Visual Studio @@ -190,15 +194,16 @@ Optionally, for Python binding (*e.g.* ``choco install python --version=3.10.4`` .. code-block:: bash - choco install doxygen.install --version=1.16 + choco install doxygen.install --version=1.16.1 choco install graphviz python -m pip install --upgrade pip pip install --upgrade wheel setuptools sphinx sphinx_rtd_theme furo sphinx-math-dollar sphinx_tabs breathe sphinx_togglebutton -The logic to follow will then be similar to Linux (note that for Visual Studio, commands such as ``make install`` need to be replaced with something similar to: +The logic to follow will then be similar to Linux. You might want to right-click in your desired folder and choose ``Git Bash Here`` to run the commands related to Git and compilation. Note that for Visual Studio, commands such as ``make`` and ``make install`` need to be replaced with something similar to: .. code-block:: bash + cmake --build . --config Release cmake --build . --config Release --target install .. warning:: @@ -221,7 +226,7 @@ Install `Homebrew package manager `_ and then build tools: brew install wget autoconf automake libtool brew install --cask cmake -Download and extract *e.g.* ``codac_standalone_arm64_monterey.zip`` from ``_, then in ``example`` folder run: +Download and extract *e.g.* ``codac_standalone_arm64_sonoma.zip`` from https://github.com/codac-team/codac/releases/latest, then in ``example`` folder run: .. code-block:: bash @@ -229,9 +234,9 @@ Download and extract *e.g.* ``codac_standalone_arm64_monterey.zip`` from `