Page 1 sur 1

_size and seq[] with 1.5.85 and later

Publié : jeu. août 13, 2020 10:41 am
par frederic han
Salut Bernard,
j'ai un probleme avec NULL ou seq[] et _size qui n'apparait pas dans giac-1.5.0.63
le petit programme suivant

Code : Tout sélectionner

// -*- compile-command: "g++ -g size-giac-1.5.0.87.cc -lgiac -lgmp" -*-
#include <giac/config.h>
#include <giac/giac.h>

using namespace std;
using namespace giac;

int main(){

  string s("seq[]");
  giac::context ct;
  gen c1(s,&ct);
  c1=eval(c1,1,&ct);
 cout << _size(c1,&ct) <<endl;
 cout << c1[0] <<endl;
//it gives with giac 1.5.0.87
//["atom","cplx","idnt","frac","vector","symb","strng","other","total"],[0,0,0,0,1,0,0,0,80]]
// but  with giac 1.5.0.63 and earlier it gives 0 as expected
return 0;
}
_size de seq[] ne retourne plus 0 avec giac 1.5.0.87 ni 1.6.0.7 mais il retourne curieusement:

Code : Tout sélectionner

[["atom","cplx","idnt","frac","vector","symb","strng","other","total"],[0,0,0,0,1,0,0,0,80]]

Re: _size and seq[] with 1.5.85 and later

Publié : jeu. août 13, 2020 2:59 pm
par parisse
J'ai modifie _size pour pouvoir avoir en ligne de commande une estimation de la taille memoire utilisee par l'ensemble des objets giac crees (par types), c'est principalement pour les ports sur calculatrices ou il y a tres peu de memoire. Apres si ca gene on peut le mettre dans un #ifdef.

Re: _size and seq[] with 1.5.85 and later

Publié : ven. août 14, 2020 10:03 am
par frederic han
Ben oui meme dans icas ca donne des choses bizarres.

Code : Tout sélectionner

1>> len(seq[])
[["atom","cplx","idnt","frac","vector","symb","strng","other","total"],[0,0,0,0,1,0,0,0,80]]
13>> L:=2,3,4
2,3,4
15>> len(L[2:2])
[["atom","cplx","idnt","frac","vector","symb","strng","other","total"],[3,0,0,0,2,0,0,0,160]]

Re: _size and seq[] with 1.5.85 and later

Publié : sam. août 15, 2020 6:24 am
par parisse
Ca me parait normal, il y a une liste en plus avec 3 entiers d'ou le resultat de la 2eme commande.

Re: _size and seq[] with 1.5.85 and later

Publié : sam. août 15, 2020 9:11 am
par frederic han
oui la ligne 13 est normale on a une liste avec 3 entiers, et l'on peut obtenir la liste vide par diverserses opérations telle que ce slice L[2:2] et ca n'est pas normal qu'elle n'ait pas longeur 0.

Re: _size and seq[] with 1.5.85 and later

Publié : ven. août 21, 2020 6:38 am
par parisse
Je modifie le source pour que _size n'ait plus ce comportement.