codac-team / codac

Codac is a library for constraint programming over reals, trajectories and sets.
http://www.codac.io
GNU Lesser General Public License v3.0
39 stars 18 forks source link

adding differentiel inclusion contractor #71

Closed damien-masse closed 2 years ago

damien-masse commented 2 years ago

Voici la proposition d'ajout pour le contracteur d'inclusion différentiel (+ l'exponentielle de matrice). Ce n'est pas entièrement testé, juste suffisamment pour permettre de reproduire à partir de la bibliothèque ce que j'avais programmé hors bibliothèque (donc un calcul d'inclusion différentiel en avant), mais en théorie ça devrait pouvoir faire plus. Deux petites remarques sur les TubeVector de codac2, je ne sais pas dans quelle mesure ce sont des bugs :

damien-masse commented 2 years ago

Modification:; ajout d'une contraction sur un slicevector (gate) sur la base de l'égalité f(codomain , u) = r (contraction sur x) (et même plus largement intersection_i f (codomain, u_i) = r_i) La contraction se fait par linéarisation locale (à comparer avec d'autres méthodes) ?

SimonRohou commented 2 years ago

on ne peut pas retourner un TubeVector ( le constructeur TubeVector(TubeVector&) est explicite)

Avec les tubes templatés, c'est fonctionnel. Voir le test ici : https://github.com/codac-team/codac/commit/9ea487979712d8b7f3829682fa92784814d02ee2

quand on crée un TubeVector à partir d'un TDomain et que le TDomain utilisé est détruit (e.g. variable locale), le TubeVector devient invalide (segfault).

C'est résolu dans 72aa60cb538423951b1386f29375d8f6147e70ec