MicroPython dans Giac en C++

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

Modérateur : xcasadmin

cdeval
Messages : 192
Inscription : mer. juin 03, 2009 4:28 pm

MicroPython dans Giac en C++

Message par cdeval » sam. juil. 22, 2023 7:33 pm

Bonjour,
le programme ci-dessous se comporte comme la commande icas en ligne de commande mais sans Micropython.
J'ai essayé de linker la librairie Micropython fournie avec les sources Giac mais sans succès.
Y a-t-il un moyen simple de compiler ce programme pour pouvoir basculer en mode 'python' ou 'giac' par une commande C++ ?
Merci

Code : Tout sélectionner

// compile-command Linux : "g++ -g -o giac_oo giac_oo.cpp -lgiac -lgmp" 
#include <giac/config.h>
#include <giac/gen.h>
#include <giac/prog.h>

int main(){
  std::string s;
  giac::context ctx;
  for (;;){
    std::cout << "Expression : " ;
    std::getline(std::cin,s);
    giac::gen g(s,&ctx);
    if (is_zero(g))
      return 0;
    g=giac::protecteval(g,1,&ctx);
    std::cout << "Sortie giac : " << g.print(&ctx) << std::endl;
  }
}

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

Re: MicroPython dans Giac en C++

Message par parisse » dim. juil. 23, 2023 8:11 pm

Ce n'est malheureusement pas très simple, il y a pas mal de boulot pour faire ça. Dans icas.cc, c'est
int micropyjs_evaled(string & s,const giac::context * contextptr)
qui appelle micropy_ck_eval, en gérant aussi l'affichage des graphiques (tortue ou 2d pixel ou 2d repère).
micropy_ck_eval est défini dans Python.cc qui définit aussi les références nécessaires de la lib micropython avec les modules.

Répondre