home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / fortran / library / ssp / spclfnct / sici.for < prev   
Encoding:
Text File  |  1986-01-03  |  2.1 KB  |  66 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE SICI
  5. C
  6. C        PURPOSE
  7. C           COMPUTES THE SINE AND COSINE INTEGRAL
  8. C
  9. C        USAGE
  10. C           CALL SICI(SI,CI,X)
  11. C
  12. C        DESCRIPTION OF PARAMETERS
  13. C           SI    - THE RESULTANT VALUE SI(X)
  14. C           CI    - THE RESULTANT VALUE CI(X)
  15. C           X     - THE ARGUMENT OF SI(X) AND CI(X)
  16. C
  17. C        REMARKS
  18. C           THE ARGUMENT VALUE REMAINS UNCHANGED
  19. C
  20. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  21. C           NONE
  22. C
  23. C        METHOD
  24. C           DEFINITION
  25. C           SI(X)=INTEGRAL(SIN(T)/T)
  26. C           CI(X)=INTEGRAL(COS(T)/T)
  27. C           EVALUATION
  28. C           REDUCTION OF RANGE USING SYMMETRY.
  29. C           DIFFERENT APPROXIMATIONS ARE USED FOR ABS(X) GREATER
  30. C           THAN 4 AND FOR ABS(X) LESS THAN 4.
  31. C           REFERENCE
  32. C           LUKE AND WIMP, 'POLYNOMIAL APPROXIMATIONS TO INTEGRAL
  33. C           TRANSFORMS',  MATHEMATICAL TABLES AND OTHER AIDS TO
  34. C           COMPUTATION, VOL. 15, 1961, ISSUE 74, PP. 174-178.
  35. C
  36. C     ..................................................................
  37. C
  38.       SUBROUTINE SICI(SI,CI,X)
  39.       Z=ABS(X)
  40.       IF(Z-4.)1,1,4
  41.     1 Y=(4.-Z)*(4.+Z)
  42.       SI=-1.570797E0
  43.       IF(Z)3,2,3
  44.     2 CI=-1.E38
  45.       RETURN
  46.     3 SI=X*(((((1.753141E-9*Y+1.568988E-7)*Y+1.374168E-5)*Y+6.939889E-4)
  47.      1*Y+1.964882E-2)*Y+4.395509E-1+SI/X)
  48.       CI=((5.772156E-1+ALOG(Z))/Z-Z*(((((1.386985E-10*Y+1.584996E-8)*Y
  49.      1+1.725752E-6)*Y+1.185999E-4)*Y+4.990920E-3)*Y+1.315308E-1))*Z
  50.       RETURN
  51.     4 SI=SIN(Z)
  52.       Y=COS(Z)
  53.       Z=4./Z
  54.       U=((((((((4.048069E-3*Z-2.279143E-2)*Z+5.515070E-2)*Z-7.261642E-2)
  55.      1*Z+4.987716E-2)*Z-3.332519E-3)*Z-2.314617E-2)*Z-1.134958E-5)*Z
  56.      2+6.250011E-2)*Z+2.583989E-10
  57.       V=(((((((((-5.108699E-3*Z+2.819179E-2)*Z-6.537283E-2)*Z
  58.      1+7.902034E-2)*Z-4.400416E-2)*Z-7.945556E-3)*Z+2.601293E-2)*Z
  59.      2-3.764000E-4)*Z-3.122418E-2)*Z-6.646441E-7)*Z+2.500000E-1
  60.       CI=Z*(SI*V-Y*U)
  61.       SI=-Z*(SI*U+Y*V)
  62.       IF(X)5,6,6
  63.     5 SI=3.141593E0-SI
  64.     6 RETURN
  65.       END
  66.