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 :

Bibliothèque de calcul


Sujet :

C++

  1. #1
    Membre éclairé Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Par défaut Bibliothèque de calcul
    Bonjour,

    Pour les besoins d'un projet en calcul formel, je dois manipuler de grands nombres (comme le calcul de 20000!). Malheureusement, le C++ ne propose pas nativement des types de données permettant de réaliser ces calculs (64 bits maximum d'après ce que je sais).

    Ma question est donc de savoir s'il existe des bibliothèques portables permettant de manipuler de grands nombres. Merci d'avance à ceux qui m'aideront


    Nico.

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    gmp

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Malheureusement, le C++ ne propose pas nativement des types de données permettant de réaliser ces calculs (64 bits maximum d'après ce que je sais).
    C'est parce que C++ ne veut fournir que les types natifs de la machine.

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par loufoque
    C'est parce que C++ ne veut fournir que les types natifs de la machine.
    std::map

  5. #5
    Membre éclairé Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Par défaut
    Après quelques recherches de mon côté, j'ai décidé de prendre CLN, ca paraît pas mal du tout. Qu'en pensez-vous ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    std::map fait partie de la bibliothèque standard, pas du langage.

    Sinon CLN je connais pas.
    GMP est la référence.

  7. #7
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par loufoque
    std::map fait partie de la bibliothèque standard, pas du langage.
    La frontière est plutôt floue entre les deux. Et quelque chose dans la bibliothèque standard aurait parfaitement convenu à l'OP. D'ailleurs à ce sujet: http://www.open-std.org/jtc1/sc22/wg...2006/n2020.pdf

  8. #8
    Membre éclairé Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Par défaut
    Merci pour le lien . Est-ce que la bibliothèque GMP fixe un nombre de décimales par défaut pour les nombres réels ? Si c'est le cas, que se passe-t-il si je fais un calcul dont le nombre de décimales d'un résultat dépasse le nombre de décimales par défaut : est-ce que le résultat est tronqué au nombre de décimales par défaut ou pas ?

    Si le résultat est tronqué, je peux toujours redéfinir le nombre de décimales en prenant une très grande valeur. Par contre, le danger réapparaitrait si un jour un calcul dépasse cette valeur .

  9. #9
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    GMP gère des entiers et des rationnels. Dans ce cas, la précision des variables est ajustée automatiquement si j'ai bonne mémoire. La partie calcul avec des flottants est (maintenant?) un projet séparé MPFR http://www.mpfr.org/ et il vaut mieux récupérer ce code directement auprès de MPFR. Là chaque variable a sa précision. Il faut lire la doc pour les détails.

Discussions similaires

  1. Bibliothèque C++ dédiée au calcul matriciel
    Par stiko dans le forum Bibliothèques
    Réponses: 33
    Dernier message: 19/11/2009, 17h36
  2. Réponses: 14
    Dernier message: 17/01/2009, 22h39
  3. [C::B 8.02,vista] utiliser une bibliothèque de calculs
    Par olivier57b dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 16/08/2008, 00h24
  4. Réponses: 13
    Dernier message: 14/04/2007, 20h14
  5. [Débutant] Bibliothèques calculs statistiques
    Par james-mi dans le forum Ruby
    Réponses: 3
    Dernier message: 02/02/2007, 01h32

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