giac icas windows

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

Modérateur : xcasadmin

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

Re: giac icas windows

Message par parisse » jeu. mars 17, 2016 8:31 pm

Les droits sur c:\xcas, ca depend sans doute de la facon dont l'install est faite, mon experience c'est qu'en general ce n'est pas tres securise sous windows dans les etablissements secondaires (pas tellement plus a la fac a vrai dire).
Il y a des variables d'environement Unix/cygwin qui controlent les chemins, cf. le fichier runxcasfr.sh du repertoire de xcas, mais je ne sais pas trop comment on peut les generer depuis un fichier .bat windows.

ddorange
Messages : 55
Inscription : sam. mars 12, 2016 7:50 am

Re: giac icas windows

Message par ddorange » sam. mars 19, 2016 11:33 am

Bonjour,

Le problème des fichiers situés dans le dossier xcas, c'est que l'on ne peut pas y accéder si on ne connait pas le dossier d'installation de xcas.

A priori, il faut que dans la variable d'environnement %PATH% de Windows figure le chemin du dossier d'installation de xcas.
Ce chemin devrait être ajouté à la variable %PATH% au moment de l'installation de Xcas
Ce n'es pas trop important car la plupart des installations sont faites dans le dossier C:\xcas...

Bonne nouvelle : j'ai compris pourquoi cela ne fonctionne pas sur les ordinateurs de mon lycée. C'est LO4 qui est installé et je faisais appel à l'API de LO pour coller du texte dans le presse papier.
Mais cette portion de code n'était pas indispensable. Du coup, je fais écrire directement le contenu de giac.out dans le traitement de texte, avant de le transformer en objet formule et cela marche.

Dès que j'aurai un version de test un peu élaborée, je mettrai un lien dans ce fil de discussion.
Didier DP
www.dmaths.org

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

Re: giac icas windows

Message par parisse » sam. mars 19, 2016 12:42 pm

Existe-t-il une commande de nullsoft installer qui ajoute un chemin dans le path ?

ddorange
Messages : 55
Inscription : sam. mars 12, 2016 7:50 am

Re: giac icas windows

Message par ddorange » sam. mars 19, 2016 6:32 pm

Didier DP
www.dmaths.org

ddorange
Messages : 55
Inscription : sam. mars 12, 2016 7:50 am

Re: giac icas windows

Message par ddorange » lun. mars 21, 2016 6:59 am

Bonjour,

J'avance...

Je butte sur la factorisation des entiers. La commande ifactor(592) dans giac.in (ou de tout autre entier) me retourne 592 (ou l'entier) dans giac.out.
J'ai également testé directement en ligne de commande avec icas giac.in, toujours 592.
Par contre isprime fonctionne parfaitement.
Je travaille sous Ubuntu 15.10. Je n'ai pas encore testé sous d'autres OS.

Cela pourrait-il être un bug de icas ?

Merci.
Cordialement.
Didier DP
www.dmaths.org

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

Re: giac icas windows

Message par parisse » lun. mars 21, 2016 8:07 am

ddorange a écrit :J'ai trouvé cette page : http://nsis.sourceforge.net/Path_Manipulation
Ca pourrait donner ca

Code : Tout sélectionner

; ${EnvVarUpdate} $0 "PATH" "A" "HKLM" $INSTDIR
mais le probleme c'est qu'en cas de reinstallation le chemin sera a nouveau ajoute et a la longue on va depasser les 1024 caracteres...
L'ideal serait de ne pas avoir a toucher au chemin.

Pour la factorisation d'entiers, c'est surement un probleme de reevaluation du resultat. Quelle sont les commandes precises que vous utilisez?

ddorange
Messages : 55
Inscription : sam. mars 12, 2016 7:50 am

Re: giac icas windows

Message par ddorange » lun. mars 21, 2016 2:24 pm

Bonjour,

1) Concernant le chemin d'installation de Xcas sous Windows : L'installateur permet de le choisir. Je ne suis pas en mesure de dire connaître la proportion d'utilisateurs qui utilisent un chemin autre que C:\xcas. Le seul moyen à ma connaissance pour trouver ce chemin est qu'il soit stipulé dans la variable d'environnement PATH.
Peut être que si l'on procède à plusieurs installations la chaîne ajoutée à la variable écrase la précédente. Là encore il faudrait essayer ?

2) Pour la décomposition en facteurs premiers voici le giac.in :

Code : Tout sélectionner

unarchive("giac.sav");
Resultat:=(ifactor(592));
Sortie:=fopen("giac.out");
fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
archive("giac.sav");
Le giac.out contient 592.
Les commandes passées sont :
cd /home/didier/.config/libreoffice/4/user/Dmaths
icas giac.in

Le retour dans le Terminal est :
// Using locale /usr/share/locale/
// fr_FR.UTF-8
// /usr/share/locale/
// giac
// UTF-8
// Maximum number of parallel threads 4
Help file /usr/share/giac/doc/fr/aide_cas not found
Added 174 synonyms
"Unable to read file Erreur: Valeur Argument Incorrecte",
// Time 0.01
2^4*37,
// Time 0
pointer(0x7fc704000f20,0),
// Time 0
1,
// Time 0
1,
// Time 0
[cas_setup([0,0,0,1,0,[1e-12,1e-15],12,[4,100,0,25],0,1,0,1]),xyztrange([-10.0,10.0,-10.0,10.0,-10.0,10.0,-10.0,10.0,-10.0,10.0,-1.4,1.1,1,0.0,1.0,3]),[unarchive("giac.sav"),(Resultat:=ifactor(592)),(Sortie:=fopen("giac.out")),fprint(Sortie,Unquoted,Resultat),fclose(Sortie),archive("giac.sav")],["Unable to read file Erreur: Valeur Argument Incorrecte",2^4*37,pointer(0x7fc704000f20,0),1,1],(Resultat:=2^4*37),xcas_mode(0)]
// Time 0
// Total time 0.01

Pour isprime(592) j'obtiens faux dans giac.out

et dans le Terminal :
// Using locale /usr/share/locale/
// fr_FR.UTF-8
// /usr/share/locale/
// giac
// UTF-8
// Maximum number of parallel threads 4
Help file /usr/share/giac/doc/fr/aide_cas not found
Added 174 synonyms
[undef],
// Time 0
faux,
// Time 0
pointer(0x7f31d8000b70,0),
// Time 0
1,
// Time 0
1,
// Time 0
[cas_setup([0,0,0,1,0,[1e-12,1e-15],12,[4,100,0,25],0,1,0,1]),xyztrange([-10.0,10.0,-10.0,10.0,-10.0,10.0,-10.0,10.0,-10.0,10.0,-1.4,1.1,1,0.0,1.0,3]),[unarchive("giac.sav"),(Resultat:=ifactor(592)),(Sortie:=fopen("giac.out")),fprint(Sortie,Unquoted,Resultat),fclose(Sortie),0,(Resultat:=isprime(592)),(Sortie:=fopen("giac.out")),fprint(Sortie,Unquoted,Resultat),fclose(Sortie),archive("giac.sav"),0,(Resultat:=isprime(592)),(Sortie:=fopen("giac.out")),fprint(Sortie,Unquoted,Resultat),fclose(Sortie),archive("giac.sav")],["Unable to read file Erreur: Valeur Argument Incorrecte",2^4*37,"Done",1,1,0,[undef],faux,"Done",1,1,0,[undef],faux,pointer(0x7f31d8000b70,0),1,1],(Resultat:=faux),xcas_mode(0)]
// Time 0.01
// Total time 0.01


Merci !
Didier DP
www.dmaths.org

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

Re: giac icas windows

Message par parisse » lun. mars 21, 2016 3:33 pm

C'est parce que la variable Resultat est evaluee : l'ecriture sous forme factorisee d'un entier est tres fragile, elle est detruite des qu'elle est evaluee. Mais on peut y remedier en shuntant la variable Resultat:

Code : Tout sélectionner

Sortie:=fopen("giac.out");
fprint(Sortie,Unquoted,ifactor(592));
fclose(Sortie);
Pour le PATH, je suis a peu pres sur que l'installer nsi ne teste pas que le chemin est deja dans le path, donc il va s'allonger a chaque reinstall de xcas, et quand il depassera 1024 caracteres, les problemes vont apparaitre. A mon avis, il est plus sur de ne pas toucher globalement a cette variable, mais uniquement localement (i.e. depuis l'executable appelant de giac), en rajoutant des chemins plausibles, a savoir c:\xcas, d:\xcas, j:\xcas (disques locaux et disque reseau), ou de demander a l'utilisateur d'ajouter lui-meme ce chemin s'il n'a pas utilise le chemin par defaut.

ddorange
Messages : 55
Inscription : sam. mars 12, 2016 7:50 am

Re: giac icas windows

Message par ddorange » lun. mars 21, 2016 4:46 pm

Bonsoir,

Concernant le chemin d'installation, je vais explorer la base de registre pour voir si je trouve une information exploitable. 8)

Concernant le fichier giac.in, quel est l'intérêt de la ligne suivante ?

Code : Tout sélectionner

Resultat:=(<commande paramètre>);
Autrement dit, est-ce que je perds quelque chose si le fichier giac.in est toujours de la forme

Code : Tout sélectionner

unarchive("giac.sav");
Sortie:=fopen("giac.out");
fprint(Sortie,Unquoted,<commande paramètre>);
fclose(Sortie);
archive("giac.sav");
au lieu de passer par la variable Resultat ?
Didier DP
www.dmaths.org

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

Re: giac icas windows

Message par parisse » lun. mars 21, 2016 6:25 pm

Je ne vois pas de raison qui obligerait a passer par une variable Resultat.

ddorange
Messages : 55
Inscription : sam. mars 12, 2016 7:50 am

Re: giac icas windows

Message par ddorange » lun. mars 21, 2016 7:50 pm

Effectivement,

J'ai modifié mon code de cette façon.
Tout fonctionne bien.
Encore quelques jours pour la version test.
Didier DP
www.dmaths.org

ddorange
Messages : 55
Inscription : sam. mars 12, 2016 7:50 am

Re: giac icas windows

Message par ddorange » mer. mars 23, 2016 6:16 pm

Bonsoir,

Pour le chemin de Xcas sous Windows, j'ai trouvé une clé dans la base de registre qui contient le chemin du fichier uninstall.exe et donc celui de Xcas.
Par contre la clé est différente selon les versions de Windows (problème récurrent), donc c'est compliqué de ce fait car on est jamais sûr d'avoir toutes les possibilités.
Finalement, je vais peut-être me résoudre à en faire un paramètre de Dmaths que l'utilisateur définira via une boîte de dialogue si le chemin n'est pas standard. A voir.


Je rencontre des choses étonnantes concernant la syntaxe des expressions.
Par exemple 1.5*x+2.8*x dans Xcas revoie 4.3*x alors que
fprint(Sortie,Unquoted,1.5*x+2.8*x); dans giac.in renvoie 1.5*x+2.8*x dans giac.out
Je ne comprends pas pourquoi.
Si je veux obtenir le bon résultat il me faut
fprint(Sortie,Unquoted,factor(1.5x+2.8x)); dans giac.in et la j'ai 4.3*x dans giac.out.

Plus généralement, où pourrais-je trouver des informations sur ces subtilités ?

Merci.
Didier DP
www.dmaths.org

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

Re: giac icas windows

Message par parisse » mer. mars 23, 2016 6:36 pm

Cela vient du fait qu'il y a une instruction de simplification automatique qui est appliquee dans Xcas, par defaut c'est regroup.

ddorange
Messages : 55
Inscription : sam. mars 12, 2016 7:50 am

Re: giac icas windows

Message par ddorange » mer. mars 23, 2016 6:53 pm

Effectivement c'est cela si je l'ajoute, le résultat est le bon.
regroup est donc appliqué quand on appuie sur la touche entrée sans autre instruction ?

Merci pour l'aide.
Didier DP
www.dmaths.org

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

Re: giac icas windows

Message par parisse » mer. mars 23, 2016 7:41 pm

oui, sauf si on modifie ca dans la configuration du CAS.

Répondre