home *** CD-ROM | disk | FTP | other *** search
- C
- C ..................................................................
- C
- C SUBROUTINE DQH64
- C
- C PURPOSE
- C TO COMPUTE INTEGRAL(EXP(-X*X)*FCT(X), SUMMED OVER X FROM
- C -INFINITY TO +INFINITY).
- C
- C USAGE
- C CALL DQH64 (FCT,Y)
- C PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT
- C
- C DESCRIPTION OF PARAMETERS
- C FCT - THE NAME OF AN EXTERNAL DOUBLE PRECISION FUNCTION
- C SUBPROGRAM USED.
- C Y - THE RESULTING DOUBLE PRECISION INTEGRAL VALUE.
- C
- C REMARKS
- C NONE
- C
- C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
- C THE EXTERNAL DOUBLE PRECISION FUNCTION SUBPROGRAM FCT(X)
- C MUST BE FURNISHED BY THE USER.
- C
- C METHOD
- C EVALUATION IS DONE BY MEANS OF 64-POINT GAUSSIAN-HERMITE
- C QUADRATURE FORMULA, WHICH INTEGRATES EXACTLY WHENEVER
- C FCT(X) IS A POLYNOMIAL UP TO DEGREE 127.
- C FOR REFERENCE, SEE
- C SHAO/CHEN/FRANK, TABLES OF ZEROS AND GAUSSIAN WEIGHTS OF
- C CERTAIN ASSOCIATED LAGUERRE POLYNOMIALS AND THE RELATED
- C GENERALIZED HERMITE POLYNOMIALS, IBM TECHNICAL REPORT
- C TR00.1100 (MARCH 1964), PP.213-214.
- C
- C ..................................................................
- C
- SUBROUTINE DQH64(FCT,Y)
- C
- C
- DOUBLE PRECISION X,Y,Z,FCT
- C
- X=.10526123167960546D2
- Z=-X
- Y=.55357065358569428D-48*(FCT(X)+FCT(Z))
- X=.9895287586829539D1
- Z=-X
- Y=Y+.16797479901081592D-42*(FCT(X)+FCT(Z))
- X=.9373159549646721D1
- Z=-X
- Y=Y+.34211380112557405D-38*(FCT(X)+FCT(Z))
- X=.8907249099964770D1
- Z=-X
- Y=Y+.15573906246297638D-34*(FCT(X)+FCT(Z))
- X=.8477529083379863D1
- Z=-X
- Y=Y+.25496608991129993D-31*(FCT(X)+FCT(Z))
- X=.8073687285010225D1
- Z=-X
- Y=Y+.19291035954649669D-28*(FCT(X)+FCT(Z))
- X=.7689540164040497D1
- Z=-X
- Y=Y+.7861797788925910D-26*(FCT(X)+FCT(Z))
- X=.7321013032780949D1
- Z=-X
- Y=Y+.19117068833006428D-23*(FCT(X)+FCT(Z))
- X=.69652411205511075D1
- Z=-X
- Y=Y+.29828627842798512D-21*(FCT(X)+FCT(Z))
- X=.66201122626360274D1
- Z=-X
- Y=Y+.31522545665037814D-19*(FCT(X)+FCT(Z))
- X=.62840112287748282D1
- Z=-X
- Y=Y+.23518847106758191D-17*(FCT(X)+FCT(Z))
- X=.59556663267994860D1
- Z=-X
- Y=Y+.12800933913224380D-15*(FCT(X)+FCT(Z))
- X=.56340521643499721D1
- Z=-X
- Y=Y+.52186237265908475D-14*(FCT(X)+FCT(Z))
- X=.53183252246332709D1
- Z=-X
- Y=Y+.16283407307097204D-12*(FCT(X)+FCT(Z))
- X=.50077796021987682D1
- Z=-X
- Y=Y+.39591777669477239D-11*(FCT(X)+FCT(Z))
- X=.47018156474074998D1
- Z=-X
- Y=Y+.7615217250145451D-10*(FCT(X)+FCT(Z))
- X=.43999171682281376D1
- Z=-X
- Y=Y+.11736167423215493D-8*(FCT(X)+FCT(Z))
- X=.41016344745666567D1
- Z=-X
- Y=Y+.14651253164761094D-7*(FCT(X)+FCT(Z))
- X=.38065715139453605D1
- Z=-X
- Y=Y+.14955329367272471D-6*(FCT(X)+FCT(Z))
- X=.35143759357409062D1
- Z=-X
- Y=Y+.12583402510311846D-5*(FCT(X)+FCT(Z))
- X=.32247312919920357D1
- Z=-X
- Y=Y+.8788499230850359D-5*(FCT(X)+FCT(Z))
- X=.29373508230046218D1
- Z=-X
- Y=Y+.51259291357862747D-4*(FCT(X)+FCT(Z))
- X=.26519724354306350D1
- Z=-X
- Y=Y+.25098369851306249D-3*(FCT(X)+FCT(Z))
- X=.23683545886324014D1
- Z=-X
- Y=Y+.10363290995075777D-2*(FCT(X)+FCT(Z))
- X=.20862728798817620D1
- Z=-X
- Y=Y+.36225869785344588D-2*(FCT(X)+FCT(Z))
- X=.18055171714655449D1
- Z=-X
- Y=Y+.10756040509879137D-1*(FCT(X)+FCT(Z))
- X=.15258891402098637D1
- Z=-X
- Y=Y+.27203128953688918D-1*(FCT(X)+FCT(Z))
- X=.12472001569431179D1
- Z=-X
- Y=Y+.58739981964099435D-1*(FCT(X)+FCT(Z))
- X=.9692694230711780D0
- Z=-X
- Y=Y+.10849834930618684D0*(FCT(X)+FCT(Z))
- X=.69192230581004458D0
- Z=-X
- Y=Y+.17168584234908370D0*(FCT(X)+FCT(Z))
- X=.41498882412107868D0
- Z=-X
- Y=Y+.23299478606267805D0*(FCT(X)+FCT(Z))
- X=.13830224498700972D0
- Z=-X
- Y=Y+.27137742494130398D0*(FCT(X)+FCT(Z))
- RETURN
- END