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

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE DQH48
  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 DQH48 (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 48-POINT GAUSSIAN-HERMITE
  28. C           QUADRATURE FORMULA, WHICH INTEGRATES EXACTLY WHENEVER
  29. C           FCT(X) IS A POLYNOMIAL UP TO DEGREE 95.
  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 DQH48(FCT,Y)
  39. C
  40. C
  41.       DOUBLE PRECISION X,Y,Z,FCT
  42. C
  43.       X=.8975315081931687D1
  44.       Z=-X
  45.       Y=.7935551460773997D-35*(FCT(X)+FCT(Z))
  46.       X=.8310752190704784D1
  47.       Z=-X
  48.       Y=Y+.59846126933138784D-30*(FCT(X)+FCT(Z))
  49.       X=.7759295519765775D1
  50.       Z=-X
  51.       Y=Y+.36850360801506699D-26*(FCT(X)+FCT(Z))
  52.       X=.7266046554164350D1
  53.       Z=-X
  54.       Y=Y+.55645774689022848D-23*(FCT(X)+FCT(Z))
  55.       X=.68100645780741414D1
  56.       Z=-X
  57.       Y=Y+.31883873235051384D-20*(FCT(X)+FCT(Z))
  58.       X=.63805640961864106D1
  59.       Z=-X
  60.       Y=Y+.8730159601186677D-18*(FCT(X)+FCT(Z))
  61.       X=.59710722250135454D1
  62.       Z=-X
  63.       Y=Y+.13151596226584085D-15*(FCT(X)+FCT(Z))
  64.       X=.55773169812237286D1
  65.       Z=-X
  66.       Y=Y+.11975898654791794D-13*(FCT(X)+FCT(Z))
  67.       X=.51962877187923645D1
  68.       Z=-X
  69.       Y=Y+.70469325815458891D-12*(FCT(X)+FCT(Z))
  70.       X=.48257572281332095D1
  71.       Z=-X
  72.       Y=Y+.28152965378381691D-10*(FCT(X)+FCT(Z))
  73.       X=.44640145469344589D1
  74.       Z=-X
  75.       Y=Y+.7930467495165382D-9*(FCT(X)+FCT(Z))
  76.       X=.41097046035605902D1
  77.       Z=-X
  78.       Y=Y+.16225141358957698D-7*(FCT(X)+FCT(Z))
  79.       X=.37617264902283578D1
  80.       Z=-X
  81.       Y=Y+.24686589936697505D-6*(FCT(X)+FCT(Z))
  82.       X=.34191659693638846D1
  83.       Z=-X
  84.       Y=Y+.28472586917348481D-5*(FCT(X)+FCT(Z))
  85.       X=.30812489886451058D1
  86.       Z=-X
  87.       Y=Y+.25285990277484889D-4*(FCT(X)+FCT(Z))
  88.       X=.27473086248223832D1
  89.       Z=-X
  90.       Y=Y+.17515043180117283D-3*(FCT(X)+FCT(Z))
  91.       X=.24167609048732165D1
  92.       Z=-X
  93.       Y=Y+.9563923198194153D-3*(FCT(X)+FCT(Z))
  94.       X=.20890866609442764D1
  95.       Z=-X
  96.       Y=Y+.41530049119775525D-2*(FCT(X)+FCT(Z))
  97.       X=.17638175798953000D1
  98.       Z=-X
  99.       Y=Y+.14444961574981099D-1*(FCT(X)+FCT(Z))
  100.       X=.14405252201375652D1
  101.       Z=-X
  102.       Y=Y+.40479676984603849D-1*(FCT(X)+FCT(Z))
  103.       X=.11188121524021566D1
  104.       Z=-X
  105.       Y=Y+.9182229707928518D-1*(FCT(X)+FCT(Z))
  106.       X=.7983046277785622D0
  107.       Z=-X
  108.       Y=Y+.16920447194564111D0*(FCT(X)+FCT(Z))
  109.       X=.47864633759449610D0
  110.       Z=-X
  111.       Y=Y+.25396154266475910D0*(FCT(X)+FCT(Z))
  112.       X=.15949293584886247D0
  113.       Z=-X
  114.       Y=Y+.31100103037796308D0*(FCT(X)+FCT(Z))
  115.       RETURN
  116.       END
  117.