IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

C++ et calcul math�matique (python ? Scilab ?)


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2013
    Messages : 30
    Par d�faut C++ et calcul math�matique (python ? Scilab ?)
    Bonjour,

    La question a du �tre trait�e des dizaines de fois mais...je me fais un noeud au cerveau depuis jeudi.


    Situation initiale :
    - soft en C++
    - donn�es sous forme de double* et de tempscustom* (i.e. vecteurs values/times) de m�me dimension stock�es dans une classe A, instanci�e autant de fois qu'il y a de "courbe" � tracer. Je ne peux pas changer cette classe.
    - Le soft est sous C::B et tourne via wxWidgets

    Probl�matique :
    - Faire des op�rations complexes sur ces courbes (matlab-like)

    Solution envisag�e :
    - Envoyer les donn�es � Scilab (via Call_SciLab) pour calculs et rappatrier les r�sultats
    - Idem Python (via ???)

    Pour SciLab, j'ai vu Call_SciLab qui pourrait r�pondre � la probl�matique. Je n'ai pas tester mais �a semble faisable et cot� math�matique, c'est un must.
    Par contre, niveau ouverture, Python est bien. Je n'ai pas de recul quant � la fa�on de faire par contre. Des infos que j'ai pu lire, Boost encapsule un objet C++ pour qu'il soit trait� dans un soft en Python. De mon cot�, je cherche plutot l'inverse : embarquer python dans mon soft C++. L'id�al serait d'avoir un shell python au passage...

    Avez vous des sujets/topics/tuto pertinents (ou simplement des conseils) la dessus ?

    Je continue � googler...
    Merci d'avance

    edit : quelques liens interessants
    http://www.developpez.net/forums/d76...pp/cpp-python/
    http://www.codeproject.com/Articles/...-C-Application
    https://www.coveros.com/calling-python-code-from-c/
    http://weihuang.blogs.rice.edu/tips-...ion-in-c-code/

  2. #2
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Salut,

    si tu veux embarquer Python https://docs.python.org/2/extending/embedding.html
    Boost le permet plus facilement.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2013
    Messages : 30
    Par d�faut
    Merci pour ta r�ponse rapide,

    J'avais vu cet article, je me demandais s'il y avait plus efficace/simple.
    Bon, donc j'ai ma r�ponse : �a ou boost, c'est ce qui vient � l'esprit et qui fonctionne.

    Je teste :-)

  4. #4
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par d�faut
    Pourquoi pas une solution en C++ comme Gnu Octave ? �a me para�trait bizarre que tu n�y trouves pas les fonctionnalit�s que tu cherches.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2013
    Messages : 30
    Par d�faut
    Je reprends un soft existant, du genre d�j� d�ploy�.

    L'id�e c'est que le soft manipule de gros volumes de donn�es, que ces donn�es sont parfois exotiques (et que ce n'est pas repr�sentable sauf sur une appli custom), et qu'il ne s'adresse a deux trois coll�gues qui ne sont ni automaticien, ni math�maticien. Donc, Matlab/SciLab/Octave, ils n'en veulent pas. Enfin, pas en tant que base logicielle.

    Donc je dois porter sur une base C++/wxWidgets quelques fonctionnalit�s dont : la possibilit� de faire des op�rations entre les donn�es, voir de faire quelques op�rations custom via scripts con�u par le prochain coll�gue qui aura envie de jouer.

    Je pars peut etre dans le mur, mais j'avais en t�te SciLab/Octave (et pad'sous pad'Matlab) ou Python (qui a l'air tres open).
    Le probl�me d'Octave, c'est qu'il n'inspire pas confiance (perenit�/aspect IHM) donc je suis parti sur SciLab/Python.


    A l'heure actuelle, je deblaie le cot� SciLab en attendant d'avoir dig�r� un peu C++/Boost/Python.
    D'ailleurs, si quelqu'un sait comment lire la console SciLab, je suis preneur.



    A ce propos, si quelqu'un a la mauvaise id�e d'utiliser C::B/Mingw32-gcc pour SciLab :
    - faire attention � la version de SciLab (32 bits = 32 bits)
    - les BOOL, on est ifndef MSC_VER mais il faut traiter �a comme si on l'�tait pas (passiver le "typedef enum bool" ainsi que le else dans bool.h des includes SciLab 5.5.2)
    - Le SendScilabJob prends des char*, donc :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    wxString maclasse::Execute(wxString myCmd)
    {
        SendScilabJob(myCmd.char_str());
        myRep = wxT("Sent [") + myCmd + wxT("]");
        return myRep;
    }

    Mais l'id�e �tant d'avoir l'env. maths g�r� par .dll, je vais sans doute regarder.
    Quelques pages interessantes ici :
    https://www.gnu.org/software/octave/...-Programs.html
    http://jordi.platinum.linux.pl/octav...-is-octave.pdf (46 et suivantes)
    http://octave.sourceforge.net/docs.html
    http://octave.sourceforge.net/coda/coda.pdf

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2013
    Messages : 30
    Par d�faut
    Au final,

    SciLab fait le job mais Call_Scilab est pas �vident � impl�menter (il existe une am�lioration de l'API...pour java);
    Octave aurait sans doute etait plus efficace, cause proche du C++. Mais dans mon cas, le GNU n'est pas synonyme de perenit�s et d'am�liorations (puis pas d'�quivalent � Simulink si un jour quelqu'un a la folie des grandeurs).

    Python aurait pu �tre cool mais j'ai �t� refroidi par Boost.Python + NumPy.
    Mais �a aurait sans doute �t� la solution la plus efficace sur le long terme.

    Bref, plus de question,
    Je tag en resolu.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. calcul math�matique en C#
    Par belmansour tidjani dans le forum C#
    R�ponses: 7
    Dernier message: 04/09/2007, 17h34
  2. Calcul math�matique en C
    Par _SamSoft_ dans le forum C
    R�ponses: 3
    Dernier message: 26/04/2007, 18h18
  3. logiciel de calculs math�matiques avanc�s
    Par jlassiramzy dans le forum Autres Logiciels
    R�ponses: 3
    Dernier message: 21/03/2007, 20h26
  4. [PHP-JS] calculs math�matiques avanc�s en php
    Par jejerome dans le forum Langage
    R�ponses: 8
    Dernier message: 12/07/2006, 13h05
  5. calculs math�matiques avec des "racines)
    Par emmanuel4945 dans le forum Access
    R�ponses: 1
    Dernier message: 30/01/2006, 21h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo