Download mdnris.procedur

Back to the list

   1 : * MDNRIS    PROCEDUR  CHLOE     99/03/18    21:15:15     3528           
   2 : DEBPROC MDNRIS P*FLOTTANT;
   3 : *--------------------------------
   4 : *-----procedure mdnris.gib--------
   5 : *
   6 : * Auteur : Fabien Heidinger
   7 : *
   8 : * Date : 29 septembre 1995
   9 : *
  10 : *--------------------------------
  11 : *mess 'debut de mdnris';
  12 : XINF=1e+9;
  13 : SQRT2=1.414214;
  14 : ZEPS=0.00000011921;
  15 : G0=0.0001851159;G1=-.002028152;G2=-.1498384;G3=.01078639;
  16 : H0=.09952975;H1=.5211733;H2=-.06888301;
  17 : IER=0;
  18 : SI (ET (>EG P 0.) (<EG P 1.));
  19 :  SI (EGA P 0.);
  20 :   P=ZEPS*ZEPS;
  21 :  FINSI;
  22 :  SI (EGA P 1.);
  23 :   P=P - (ZEPS*ZEPS);
  24 :  FINSI;
  25 :  SI (<EG P ZEPS);
  26 :   A=P+P;
  27 :   W=0-(LOG (A+A-(A*A)))**0.5;
  28 :   WI=1./W;
  29 :   SN=WI*(G3*WI+G2*WI+G1);
  30 :   SD=WI*(WI+H2*WI+H1)+H0;
  31 :   Y=W+(W*(G0+(SN/SD)));
  32 :   Y=0-Y*SQRT2;
  33 :   QUITTER MDNRIS;
  34 :  FINSI;
  35 :   X=1-(P+P);
  36 : *
  37 : repeter ba1 1;
  38 : A1=-.5751703;A2=-1.896513;A3=-.05496261;
  39 : B0=-.1137730;B1=-3.293474;B2=-2.374996;
  40 : B3=-1.187515;
  41 : C0=-.1146666;C1=-.1314774;C2=-.2368201;
  42 : C3=.05073975;D0=-44.27977;D1=21.98546;
  43 : D2=-7.586103;E0=-.05668422;E1=.3937021;
  44 : E2=-.3166501;E3=.06208963;
  45 : F0=-6.266786;F1=4.666263;F2=-2.962883;
  46 : G0=.0001851159;G1=-.002028152;
  47 : G2=-.1498384;G3=.01078639;
  48 : H0=.09952975;H1=.5211733;
  49 : H2=-.06888301;
  50 : RINFM=1000000000.;
  51 : 
  52 : IER = 0;
  53 : *X = P;
  54 : FSIG=SIGN X;
  55 : 
  56 : SI (OU (< X -1.) (> X 1.));
  57 :  IER = 129;
  58 :  Y = FSIG * RINFM;
  59 :  MESS 'ERREUR : MERFI';
  60 : * QUITTER MERFI;
  61 : iterer ba1;
  62 : FINSI;
  63 : 
  64 : Z = ABS X;
  65 : 
  66 : SI (<EG Z .85);
  67 :  Z2 = Z*Z;
  68 :  F=Z*(B0+(A1*Z2/(B1+Z2+(A2/(B2+Z2+(A3/(B3+Z2)))))))+Z;
  69 :  Y = FSIG*F;
  70 :  IER = 0;
  71 : * QUITTER MERFI;
  72 : iterer ba1;
  73 : FINSI;
  74 :  
  75 : A = 1.-Z;
  76 : B = Z;
  77 : W=0-(LOG (A*B+A))**0.5;
  78 :  
  79 : SI (< W 2.5);
  80 :  SN = ((C3*W+C2)*W+C1)*W;
  81 :  SD = ((W+D2)*W+D1)*W+D0;
  82 :  F = W + (W*(C0+(SN/SD)));
  83 :  Y = FSIG*F;
  84 :  IER = 0;
  85 : * QUITTER MERFI;
  86 : iterer ba1;
  87 : FINSI;
  88 :  
  89 : SI (< W 4);
  90 :  SN = ((E3*W+E2)*W+E1)*W;
  91 :  SD = ((W+F2)*W+F1)*W+F0;
  92 :  F = W + (W*(E0+(SN/SD)));
  93 :  Y=FSIG*F;
  94 :  IER=0;
  95 : * QUITTER MERFI;
  96 : iterer ba1;
  97 : FINSI;
  98 :  
  99 : WI = 1./W;
 100 : SN = ((G3*WI+G2)*WI+G1)*WI;
 101 : SD = ((WI+H2)*WI+H1)*WI+H0;
 102 : F = W + (W*(G0+(SN/SD)));
 103 : Y=FSIG*F;
 104 : IER=0;
 105 : fin ba1;
 106 : *  Y IER =MERFI X;
 107 :   Y=0 - SQRT2*Y;
 108 :   QUITTER MDNRIS;
 109 : SINON;
 110 :  IER=129;
 111 :  FG=SIGN P;
 112 :  Y=FG*XINF;
 113 :  MESS 'ERREUR MDNRIS';
 114 :  QUITTER MDNRIS;
 115 : FINSI;
 116 : FINPROC Y IER;
 117 : 
 118 : 
 119 : 
 120 : 
 121 :  

© Cast3M 2003 - All rights reserved.
Disclaimer