choze bizarre avec element

Librairie C++ de calcul formel/ C++ symbolic computation library

Modérateur : xcasadmin

loic
Messages : 168
Inscription : ven. mars 14, 2008 7:20 pm

choze bizarre avec element

Message par loic » ven. juin 22, 2012 8:58 pm

Bonsoir,

je ne sais pas si c'est normal:

Code : Tout sélectionner

a:=plot(1/x);
A:=element(a);
Le gen renvoyé par A contient bcp de choses et me parait douteux ... ou alors je n'ai pas compris qq chose!

parisse
Messages : 5740
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: choze bizarre avec element

Message par parisse » sam. juin 23, 2012 5:41 am

Il "contient" toute la courbe (donc la discrétisation de la courbe qui est un vecteur de quelques centaines de complexes). Mais sans occuper des tonnes de mémoire, puisque tous les objets non immédiats sont stockés une seule fois et référencés par des pointeurs.

alb
Messages : 1320
Inscription : ven. août 28, 2009 3:34 pm

Re: choze bizarre avec element

Message par alb » sam. juin 23, 2012 6:17 am

Apparemment il faut préciser sur quelle branche on se trouve:
a:=plot(1/x,x=0..10);A:=element(a)

loic
Messages : 168
Inscription : ven. mars 14, 2008 7:20 pm

Re: choze bizarre avec element

Message par loic » sam. juin 23, 2012 8:05 am

Oui, le problème est le suivant:

Code : Tout sélectionner

a:=plot(1/x);
A:=element(a);
coordinates(A)
pnt[pnt[x+i/x+1/(x+i/x)*(i),x,7.64666108211e-15,10.025,0],0]
Et il n'y a pas de point créé à l'affichage...
Est-il possible d'avoir un point parcourant les deux branches de l'hyperbole?

parisse
Messages : 5740
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: choze bizarre avec element

Message par parisse » sam. juin 23, 2012 1:20 pm

oui, c'est parce que element(a) est en fait element d'une liste pour le graphe de l'hyperbole (il y a 2 branches), donc ça le trouble pour mettre le paramètre par défaut 1/2 de element. Par contre si on le précise, ça a l'air de marcher. Je regarderai si je peux automatiser ça la semaine prochaine.

loic
Messages : 168
Inscription : ven. mars 14, 2008 7:20 pm

Re: choze bizarre avec element

Message par loic » sam. juin 23, 2012 8:47 pm

ok, merci d'essayer!

En sachant que pour des graphes tels que x->tan(x), on va avoir encore plus de branches ...

Bon courage! ;)

loic
Messages : 168
Inscription : ven. mars 14, 2008 7:20 pm

Re: choze bizarre avec element

Message par loic » jeu. juin 28, 2012 4:39 pm

Hello Bernard,

Je venais aux nouvelles.
En particulier pour savoir si vous aviez eu le temps de jeter un oeil sur le problème précédent.

De mon côté, l'application QCAS commence à être franchement fonctionnelle. Je pense publier une première version d'ici bientôt.

++

Loïc

parisse
Messages : 5740
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: choze bizarre avec element

Message par parisse » jeu. juin 28, 2012 5:48 pm

pour le moment, j'ai fait en sorte que element(liste graphes) fasse comme element(1er graphe).
J'attendais d'avoir nettoyé le code de bases de Groebner, je pense faire une mise a jour demain.

parisse
Messages : 5740
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: choze bizarre avec element

Message par parisse » ven. juin 29, 2012 8:39 am

voila, qtgiac est a jour. Le code de Groebner n'est pas encore completement nettoye (en particulier pour des coefficients dans des corps finis...) mais suffisamment stable en tout cas pour solve.

loic
Messages : 168
Inscription : ven. mars 14, 2008 7:20 pm

Re: choze bizarre avec element

Message par loic » ven. juin 29, 2012 6:39 pm

Pourrais-tu rajouter dans le fichier plot.h ligne (290 par exemple) la ligne:
extern const unary_function_ptr * const at_Bezier;
Autrement, à chaque fois, je dois décommenter les lignes :

Code : Tout sélectionner

/* Define to 1 if you have the `pthread' library (-lpthread). */
 #define HAVE_LIBPTHREAD 1

/* Define to 1 if you have the <pthread.h> header file. */
 #define HAVE_PTHREAD_H 1
Je ne sais pas si c'est gênant pour d'autres que cela soit fait directement. Cela m'éviterait à chaque fois de le faire.

Merci d'avance!

loic
Messages : 168
Inscription : ven. mars 14, 2008 7:20 pm

Re: choze bizarre avec element

Message par loic » sam. juin 30, 2012 1:23 pm

Je viens d'effectuer la mise à jour.

A:=element(plot(1/x,x))

me trace la première branche de l'hyperbole à l'écran et non un point....
Est-ce moi qui fait fausse route?

parisse
Messages : 5740
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: choze bizarre avec element

Message par parisse » dim. juil. 01, 2012 6:59 am

non, non, c'est moi, je n'avais pas testé la correction. Je mettrai à jour lundi.

parisse
Messages : 5740
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: choze bizarre avec element

Message par parisse » lun. juil. 02, 2012 11:10 am

voila, c'est mis a jour!

loic
Messages : 168
Inscription : ven. mars 14, 2008 7:20 pm

Re: choze bizarre avec element

Message par loic » lun. juil. 02, 2012 2:27 pm

Je viens de mettre à jour. C'est quasi-fonctionnel mais il y a encore un petit truc qui cloche:

Toujours sur le même exemple:

Code : Tout sélectionner

a:=plot(1/x);
A:=element(a);
Le point A créé a pour coordonnées (0.5;2)

Si je tape en revanche:

Code : Tout sélectionner

a:=plot(1/x);
A:=element(a)-3-2.5*i;
Le point A alors créé a pour coordonnées environ (-0.4; -2.5)

Considérant la translation réalisée, le projeté devrait plutôt avoir une abscisse comprise entre -2 et -3.

Un détail, dans la console, un paquet de
schur row 3 -5.71249e-10
schur row 3 -5.71249e-10
schur row 3 -7.1326e-10
schur row 3 -7.1326e-10
schur row 3 -5.71249e-10
schur row 3 -5.71249e-10
schur row 3 -5.71249e-10
schur row 3 -5.71249e-10
schur row 3 -5.71249e-10
schur row 3 -5.71249e-10
schur row 3 -5.71249e-10
schur row 3 -5.71249e-10
schur row 3 -5.71249e-10
schur row 3 -5.71249e-10
schur row 3 -5.37548e-10
Lorsqu'on déplace le point.

parisse
Messages : 5740
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: choze bizarre avec element

Message par parisse » lun. juil. 02, 2012 3:44 pm

Il faut mettre des parenthèses pour la translation, sinon il effectue 2 projections, d'abord A-3 puis A-2.5*i, donc ici A:=element(a)-(3+2.5*i);

Répondre