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 :

prototype erf : double ou float ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut prototype erf : double ou float ?
    Bonjour,

    Le problème global est le suivant :
    - Je souhaite utiliser math.h en python pour utiliser les fonctions erf et erfc.
    - Ce que j'ai fait fonctionne bien sous Mandrake 10.1 avec un gcc 3.4
    - Ce que j'ai fait ne fonctionne pas sous RedHat 8 avec un gcc 2.95, sauf si je remplace les "double" par des "float" ?

    L'erreur est que lorsque je demande erf(4.) par exemple, il a l'air de mouliner dans le vide, comme s'il bouclait sur lui même. Avez vous une idée pour me dépatouiller de ce bazar, sachant que mon chef aimerait bien conserver les doubles ???


    Les 3 fichiers sont les suivants :
    - mathfunctions.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    /* mathfunctions.c
    */
    #include <math.h>
    #include "mathfunctions.h"
     
    double erf(double argument)
    //    erf error function
    {
       return erf(argument);
    }
     
    double erfc(double argument)
    //   erf complementary error function
    {
       return erfc(argument);
    - mathfunctions.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /* mathfunctions.h
    */
     
    double erf(double argument);
     
    double erfc(double argument);
    - et mathfunctions.i pour faire du swig, mais je ne sais pas si le problème vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    %module mathfunctions
     
    %{
    #include "mathfunctions.h"
    %}
     
    %include "mathfunctions.h"
    Merci

    Nicolas

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Citation Envoyé par nicolas.puiroux
    Le problème global est le suivant :
    - Je souhaite utiliser math.h en python pour utiliser les fonctions erf et erfc.
    - Ce que j'ai fait fonctionne bien sous Mandrake 10.1 avec un gcc 3.4
    - Ce que j'ai fait ne fonctionne pas sous RedHat 8 avec un gcc 2.95, sauf si je remplace les "double" par des "float" ?
    A première vu je dirai que ton compilateur sous Red hat est trop vieux :
    Citation Envoyé par man erf
    CONFORMITÉ
    SVID 3, BSD 4.3, C99. Les variantes float et long double sont des demandes C99.

    Sachant que gcc n'est pas encore au point au niveau du C99, j'ose même pas regarder le status de la version 2.95

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut
    Bonjour,

    Tout d'abord merci de m'avoir répondu si vite .

    J'ai cependant une petite question : qu'est ce que le C99 ?

    J'ai modifié le nom des fonctions dans mathfunctions.h et mathfunctions.c, et là ca marche dans tous les cas.

    J'ai l'impression qu'en RedHat il rebouclait sur lui même et qu'en Mandrake il allait chercher la fonction de math.h

    En tout cas merci de ta réponse

    Nicolas

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par nicolas.puiroux
    L'erreur est que lorsque je demande erf(4.) par exemple, il a l'air de mouliner dans le vide, comme s'il bouclait sur lui même.
    Ben oui, c'est quoi ce bazar :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    double erf(double argument)
    //    erf error function
    {
       return erf(argument);
    }
    Fonction recursive infinie? Il ne faut pas redefinir le erf() de math.h !

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par DaZumba
    Ben oui, c'est quoi ce bazar :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    double erf(double argument)
    //    erf error function
    {
       return erf(argument);
    }
    Fonction recursive infinie? Il ne faut pas redefinir le erf() de math.h !
    Je vais reprendre un café.

    @nicolas.puiroux : Les nouveautés du C99 - Introduction

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut
    Mea Culpa, c'est le truc que m'avait filé le chef.
    Je trouvais ca louche, mais puisque ca marchait en MK (d'ailleurs comment ca se fait ?), je me suis pas posé plus de question...

    Honte sur moi
    Je suis vraiment un



    Nicolas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertion String en double ou float
    Par superjaja dans le forum C#
    Réponses: 6
    Dernier message: 31/12/2007, 13h00
  2. Passage double vers float
    Par Rastapopoulos dans le forum C++
    Réponses: 11
    Dernier message: 03/10/2007, 17h11
  3. différence entre double et float
    Par Maria1505 dans le forum C++
    Réponses: 2
    Dernier message: 03/01/2007, 05h16
  4. du double au float
    Par yvesall dans le forum C
    Réponses: 7
    Dernier message: 10/11/2006, 16h13

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