Skip to content

Fix warnings - #393

Closed
Jordan08 wants to merge 44 commits into
codac-team:codac2from
Jordan08:fix-warnings
Closed

Fix warnings#393
Jordan08 wants to merge 44 commits into
codac-team:codac2from
Jordan08:fix-warnings

Conversation

@Jordan08

Copy link
Copy Markdown

J'ai développé avec Clang-18 et plein d'option de Debug et de track de memory leak
ça a révelé beaucoup de warnings et de perte de memoire.

J'ai fixé l'intégralité de ce que j'ai trouvé.

  • j'ai ajouté plein de check et de warning dans le mode Debug
  • quelques problèmes de typage dans le binding python
  • resize_save_values a été renommé conservativeResize, comme dans Eigen, comme ça on utilise directement la fonction Eigen
  • modification des CMakeLists.txt, un problème lors de la création des tests, les fichier étaient copier dans l'include et le linker de savait plus choisir entre la copy et l'originale
  • Dans la class Paving, j'ai déplacé l'initialisation du _tree. Il y avait un problème dans la création des Pavinginout et Pavingout: l'objet avait besoin d'être créer avant de faire le static_cast
  • dans PavingNode, il y avait un double pointeur shared_ptr entre le père et le fils, ce qui provoquait un problème à la destruction. J'ai ajouté un test pour vérifier ce problème.
  • dans cocdac2_matrices.h, j'ai changé ceci:
    template
    concept IsIntervalDomain = codac2::is_interval_based::value;
    //concept IsIntervalDomain = std::is_same_v<Scalar,codac2::Interval>;
    Avec le Scalar, ça permet d'avoir une compatibilité avec le type Affine que je veux intégrer, sans rien changer au comportement actuelle.
  • j'ai également améliorer le Approx
  • plein d'autres warnings mineurs...
    ..

Jordan08 and others added 16 commits August 6, 2026 01:08
Change name in AffineMain: size -> noise_count,...
Correct many bugs in AffineForm domain and tests
rename  the folder "AffineForm" into "affine"
Fix many memory leaks and bugs
compil manual fixed
compil with option WITH_PYTHON fixed and tested with Debug.
Build clean and install clean.
No mar warnings.
…tation of the slice method in SlicedTube was returning a reference to a Slice object that was created from a shared pointer to a TSlice object. However, the shared pointer was being created with a custom deleter that did nothing, which meant that the TSlice object was never deleted, leading to a memory leak.
Jordan08 and others added 13 commits August 26, 2026 14:55
… based on the Eigen library and provide a Python interface to the Affine domain classes and operations. The following files have been added or modified:

- CMakeLists.txt: Updated to include the new source files for the Affine domain bindings
# Conflicts:
#	CMakeLists.txt
…egral test

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…egral test

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Add init_from_list() function to AffineForm to allow initialization from a list of values.
@Jordan08

Copy link
Copy Markdown
Author

Attention, j'ai trouvé un problème dans le binding python.
En effet, le produit matrice-vecteur est codé avec le "*" , alors qu'en numpy, on utilise le "@"
Il faut utiliser matmul à la place de mul
Le problème est que ce genre de changement peut avoir un impact sur tous les code déjà écrit en python.

@godardma

Copy link
Copy Markdown
Collaborator

Je me permets de donner des éléments de réponse pour la remarque sur la multiplication matrice-vecteur.

En effet, le produit matrice-vecteur est codé avec le "*" , alors qu'en numpy, on utilise le "@"

Dans la librairie on essaie autant que possible d'avoir des syntaxes similaires en C++, Python et Matlab. Pour les deux premiers étant donné que Eigen défini le produit matrice-vecteur avec le "*", on l'utilise aussi en Python.

Pour ce qui est du Matlab il se trouve que c'est en fait la librairie Python qui est importée. Changer cet opérateur changera donc aussi celui en utilisé par Matlab à moins de faire une distinction à coup de if constexpr(!FOR_MATLAB) comme fait actuellement à plusieurs endroits.

@Jordan08

Copy link
Copy Markdown
Author

ok et ce ne serait pas mieux de mettre les deux possibilités en python: autoriser les * et les @
Et pour Matlab, on laisse que le *
ça permettrai d'être toujours compatible avec les codes déjà écrit en python avec codac.
Qu'en pensez-vous?

@Jordan08

Jordan08 commented Sep 2, 2026

Copy link
Copy Markdown
Author

je ferme le pullrequest le temps de finaliser la branch

@Jordan08 Jordan08 closed this Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants