code 35166;
    procedure BESS PQ1(X, P1, Q1);
    value X; real X, P1, Q1;
    if X < 8 then 
    begin real B, COSX, SINX, J1X, Y1;
      BESS Y01(X, J1X, Y1); J1X:= BESS J1(X);
      X:= X-.78539 81633 97448; COSX:= COS(X); SINX:= SIN(X);
      P1:= B * (J1X * SINX - Y1 * COSX);
      Q1:= B * (J1X * COSX + Y1 * SINX)
    end else 
    begin real X2, AR, B0, B1, B2, Y;
        Y:= 8 / X; X:= 2 * Y * Y - 1; X2 := X + X;
            comment COMPUTATION OF P1;
            B1:= B2:= 0;
            for AR:= +.10668"-15,
            -.72212          "-15, +.545267         "-14,
            -.4684224        "-13, +.46991955       "-12,
            -.570486364      "-11, +.881689866      "-10,
            -.187189074911   "- 8, +.6177633960644  "- 7,
            -.39872843004889 "- 5, +.89898983308594 "- 3
            do 
            begin B0:= B1 * X2 - B2 + AR;
                B2:= B1; B1:= B0
            end;
            P1:= X * B1 - B2 + 1.0009030408600137;
            comment COMPUTATION OF Q1;
            B1:= B2:= 0;
            for AR:=
            -.10269          "-15, +.65083          "-15,
            -.456125         "-14, +.3596777        "-13,
            -.32643157       "-12, +.351521879      "-11,
            -.4686363688     "-10, +.82291933277    "- 9,
            -.2095978138408  "- 7, +.91386152579555 "- 6,
            -.96277235491571 "- 4 do 
            begin B0:= X2 * B1 - B2 + AR;
                B2:= B1; B1:= B0
            end;
            Q1:=(X * B1 - B2 + .46777787069535" -1) * Y
    end BESS PQ1;
        eop