home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / DOOG / PCSSP1.ZIP / GHRMQUAD.ZIP / DQH64.FOR < prev    next >
Text File  |  1985-11-29  |  4KB  |  141 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE DQH64
  5. C
  6. C        PURPOSE
  7. C           TO COMPUTE INTEGRAL(EXP(-X*X)*FCT(X), SUMMED OVER X FROM
  8. C                               -INFINITY TO +INFINITY).
  9. C
  10. C        USAGE
  11. C           CALL DQH64 (FCT,Y)
  12. C           PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT
  13. C
  14. C        DESCRIPTION OF PARAMETERS
  15. C           FCT    - THE NAME OF AN EXTERNAL DOUBLE PRECISION FUNCTION
  16. C                    SUBPROGRAM USED.
  17. C           Y      - THE RESULTING DOUBLE PRECISION INTEGRAL VALUE.
  18. C
  19. C        REMARKS
  20. C           NONE
  21. C
  22. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  23. C           THE EXTERNAL DOUBLE PRECISION FUNCTION SUBPROGRAM FCT(X)
  24. C           MUST BE FURNISHED BY THE USER.
  25. C
  26. C        METHOD
  27. C           EVALUATION IS DONE BY MEANS OF 64-POINT GAUSSIAN-HERMITE
  28. C           QUADRATURE FORMULA, WHICH INTEGRATES EXACTLY WHENEVER
  29. C           FCT(X) IS A POLYNOMIAL UP TO DEGREE 127.
  30. C           FOR REFERENCE, SEE
  31. C           SHAO/CHEN/FRANK, TABLES OF ZEROS AND GAUSSIAN WEIGHTS OF
  32. C           CERTAIN ASSOCIATED LAGUERRE POLYNOMIALS AND THE RELATED
  33. C           GENERALIZED HERMITE POLYNOMIALS, IBM TECHNICAL REPORT
  34. C           TR00.1100 (MARCH 1964), PP.213-214.
  35. C
  36. C     ..................................................................
  37. C
  38.       SUBROUTINE DQH64(FCT,Y)
  39. C
  40. C
  41.       DOUBLE PRECISION X,Y,Z,FCT
  42. C
  43.       X=.10526123167960546D2
  44.       Z=-X
  45.       Y=.55357065358569428D-48*(FCT(X)+FCT(Z))
  46.       X=.9895287586829539D1
  47.       Z=-X
  48.       Y=Y+.16797479901081592D-42*(FCT(X)+FCT(Z))
  49.       X=.9373159549646721D1
  50.       Z=-X
  51.       Y=Y+.34211380112557405D-38*(FCT(X)+FCT(Z))
  52.       X=.8907249099964770D1
  53.       Z=-X
  54.       Y=Y+.15573906246297638D-34*(FCT(X)+FCT(Z))
  55.       X=.8477529083379863D1
  56.       Z=-X
  57.       Y=Y+.25496608991129993D-31*(FCT(X)+FCT(Z))
  58.       X=.8073687285010225D1
  59.       Z=-X
  60.       Y=Y+.19291035954649669D-28*(FCT(X)+FCT(Z))
  61.       X=.7689540164040497D1
  62.       Z=-X
  63.       Y=Y+.7861797788925910D-26*(FCT(X)+FCT(Z))
  64.       X=.7321013032780949D1
  65.       Z=-X
  66.       Y=Y+.19117068833006428D-23*(FCT(X)+FCT(Z))
  67.       X=.69652411205511075D1
  68.       Z=-X
  69.       Y=Y+.29828627842798512D-21*(FCT(X)+FCT(Z))
  70.       X=.66201122626360274D1
  71.       Z=-X
  72.       Y=Y+.31522545665037814D-19*(FCT(X)+FCT(Z))
  73.       X=.62840112287748282D1
  74.       Z=-X
  75.       Y=Y+.23518847106758191D-17*(FCT(X)+FCT(Z))
  76.       X=.59556663267994860D1
  77.       Z=-X
  78.       Y=Y+.12800933913224380D-15*(FCT(X)+FCT(Z))
  79.       X=.56340521643499721D1
  80.       Z=-X
  81.       Y=Y+.52186237265908475D-14*(FCT(X)+FCT(Z))
  82.       X=.53183252246332709D1
  83.       Z=-X
  84.       Y=Y+.16283407307097204D-12*(FCT(X)+FCT(Z))
  85.       X=.50077796021987682D1
  86.       Z=-X
  87.       Y=Y+.39591777669477239D-11*(FCT(X)+FCT(Z))
  88.       X=.47018156474074998D1
  89.       Z=-X
  90.       Y=Y+.7615217250145451D-10*(FCT(X)+FCT(Z))
  91.       X=.43999171682281376D1
  92.       Z=-X
  93.       Y=Y+.11736167423215493D-8*(FCT(X)+FCT(Z))
  94.       X=.41016344745666567D1
  95.       Z=-X
  96.       Y=Y+.14651253164761094D-7*(FCT(X)+FCT(Z))
  97.       X=.38065715139453605D1
  98.       Z=-X
  99.       Y=Y+.14955329367272471D-6*(FCT(X)+FCT(Z))
  100.       X=.35143759357409062D1
  101.       Z=-X
  102.       Y=Y+.12583402510311846D-5*(FCT(X)+FCT(Z))
  103.       X=.32247312919920357D1
  104.       Z=-X
  105.       Y=Y+.8788499230850359D-5*(FCT(X)+FCT(Z))
  106.       X=.29373508230046218D1
  107.       Z=-X
  108.       Y=Y+.51259291357862747D-4*(FCT(X)+FCT(Z))
  109.       X=.26519724354306350D1
  110.       Z=-X
  111.       Y=Y+.25098369851306249D-3*(FCT(X)+FCT(Z))
  112.       X=.23683545886324014D1
  113.       Z=-X
  114.       Y=Y+.10363290995075777D-2*(FCT(X)+FCT(Z))
  115.       X=.20862728798817620D1
  116.       Z=-X
  117.       Y=Y+.36225869785344588D-2*(FCT(X)+FCT(Z))
  118.       X=.18055171714655449D1
  119.       Z=-X
  120.       Y=Y+.10756040509879137D-1*(FCT(X)+FCT(Z))
  121.       X=.15258891402098637D1
  122.       Z=-X
  123.       Y=Y+.27203128953688918D-1*(FCT(X)+FCT(Z))
  124.       X=.12472001569431179D1
  125.       Z=-X
  126.       Y=Y+.58739981964099435D-1*(FCT(X)+FCT(Z))
  127.       X=.9692694230711780D0
  128.       Z=-X
  129.       Y=Y+.10849834930618684D0*(FCT(X)+FCT(Z))
  130.       X=.69192230581004458D0
  131.       Z=-X
  132.       Y=Y+.17168584234908370D0*(FCT(X)+FCT(Z))
  133.       X=.41498882412107868D0
  134.       Z=-X
  135.       Y=Y+.23299478606267805D0*(FCT(X)+FCT(Z))
  136.       X=.13830224498700972D0
  137.       Z=-X
  138.       Y=Y+.27137742494130398D0*(FCT(X)+FCT(Z))
  139.       RETURN
  140.       END
  141.