Fortran : fonction inconnue

Résolu
pom -  
 BP06 -
Bonjour, j'aimerais comprendre un programme écrit en Fortran 77 mais je ne connais pas du tout ce langage.

La ligne qui me gêne est la suivante :

scr2=sign(1.0/y(i) ,0.1*epsmin*ascr - d(i) )

où epsmin, ascr sont des réels, y(i) est la ième composante du vecteur y (c'est donc un réel), de-même pour d(i).

Que fait la fonction sign ?

Je comprends que sign(x) = 1 ou -1 suivant le fait que x soit positif ou nul, mais sign(x,y) ?

Merci beaucoup.

3 réponses

  1. sam3000 Messages postés 1226 Statut Membre 144
     
    salut,
    Voila ce qui devrais t'aider (si tu comprend l'anglais)

    http://www.math.hawaii.edu/lab/197/fortran/fort4.htm

    en gros, c'est son role:
    The function sign in Fortran is called the sign transfer function. It is a function of two variables, and its definition involves two cases:
    
    CASE 1:   If y ≥ 0 then 		
    		sign(x,y) = abs(x)   ,
    CASE 2:   If y < 0 then 		
    		sign(x,y) = - abs(x)
    


    sinon je vais te traduire ça ici (tu demance si c'est le cas!)
    0
    1. pom
       
      Merci !
      0
    2. ant
       
      soit pour la fonction sign(x) = + ou - un selon le signe de x, tapper:
      sign(1D0,x), remplacer 1D0 par le type de x selon usage...
      0
  2. mabrouki
     
    SIGN(parametre1,parametre2)

    renvoie parametre1 avec signe du 2ème parametre
    exemple:
    SIGN(50,-20) renvoie -50 (explication 50x-1)

    SIGN(-50,-20) renvoie +50(explication -50x-1)

    SIGN(50,20) renvoie 50(explication 50x1)

    SIGN(-50,40) renvoie -50(explication -50x1)

    attention si tu donnes parametre2=0 ,resultat imprevu(unsafe)
    0
  3. BP06
     
    Afin de ne pas laisser des erreurs :
    SIGN(-20,+50) --> +20
    SIGN(-20,-50) --> -20
    SIGN(+20,+50) --> +20
    SING(+20,-50) --> -20

    Si le deuxieme parametre est nul, il faut distinguer le cas entier (traité comme positif) du cas flottant où les conventions IEEE s'appliquent (cas du zéro négatif)
    0