code 35176;
    real procedure NONEXP BESS I1(X); value X; real X;
    if X=0 then NONEXP BESS I1:= 0
    else if ABS(X)> 15.0 then 
    begin integer SIGNX ;
      real AR, BR, BR1, BR2, Z, Z2,
      SQRTX, DENOMINATOR, NUMERATOR;
      SIGNX:= SIGN(X); X:= ABS(X); SQRTX:= SQRT(X);
      Z:= 30/X - 1; Z2 := Z + Z;
          BR1:= BR2:= 0;
      for AR:=
      +.14940  52814  740  "+1,
      -.36202  64202  42263  "+3,
      +.22054  97222  60336  "+5,
      -.40892  80849  44275  "+6 do 
      begin BR:= Z2 * BR1 - BR2 + AR;
          BR2:= BR1; BR1:= BR
      end;
      NUMERATOR:= Z * BR1 -BR2 +.10277  66923  71524  "7;
      BR1:= BR2:= 0; for AR:= 1,
      -.63100  32005  51590  "3,
      +.49681  19495  33398  "5,
      -.10042  54281  33695  "7  do 
      begin BR:= Z2 * BR1 - BR2 + AR; BR2:= BR1; BR1:=BR end;
      DENOMINATOR:= Z * BR1 - BR2 +.26028  87678  9105  "7;
      NONEXP BESS I1:= ((NUMERATOR/DENOMINATOR)/SQRTX) * SIGN X
    end else 
    begin 
      NONEXP BESS I1:= EXP(-ABS(X))*BESS I1(X)
    end 

        eop