home *** CD-ROM | disk | FTP | other *** search
- C
- C ..................................................................
- C
- C SUBROUTINE DQH48
- 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 DQH48 (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 48-POINT GAUSSIAN-HERMITE
- C QUADRATURE FORMULA, WHICH INTEGRATES EXACTLY WHENEVER
- C FCT(X) IS A POLYNOMIAL UP TO DEGREE 95.
- 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 DQH48(FCT,Y)
- C
- C
- DOUBLE PRECISION X,Y,Z,FCT
- C
- X=.8975315081931687D1
- Z=-X
- Y=.7935551460773997D-35*(FCT(X)+FCT(Z))
- X=.8310752190704784D1
- Z=-X
- Y=Y+.59846126933138784D-30*(FCT(X)+FCT(Z))
- X=.7759295519765775D1
- Z=-X
- Y=Y+.36850360801506699D-26*(FCT(X)+FCT(Z))
- X=.7266046554164350D1
- Z=-X
- Y=Y+.55645774689022848D-23*(FCT(X)+FCT(Z))
- X=.68100645780741414D1
- Z=-X
- Y=Y+.31883873235051384D-20*(FCT(X)+FCT(Z))
- X=.63805640961864106D1
- Z=-X
- Y=Y+.8730159601186677D-18*(FCT(X)+FCT(Z))
- X=.59710722250135454D1
- Z=-X
- Y=Y+.13151596226584085D-15*(FCT(X)+FCT(Z))
- X=.55773169812237286D1
- Z=-X
- Y=Y+.11975898654791794D-13*(FCT(X)+FCT(Z))
- X=.51962877187923645D1
- Z=-X
- Y=Y+.70469325815458891D-12*(FCT(X)+FCT(Z))
- X=.48257572281332095D1
- Z=-X
- Y=Y+.28152965378381691D-10*(FCT(X)+FCT(Z))
- X=.44640145469344589D1
- Z=-X
- Y=Y+.7930467495165382D-9*(FCT(X)+FCT(Z))
- X=.41097046035605902D1
- Z=-X
- Y=Y+.16225141358957698D-7*(FCT(X)+FCT(Z))
- X=.37617264902283578D1
- Z=-X
- Y=Y+.24686589936697505D-6*(FCT(X)+FCT(Z))
- X=.34191659693638846D1
- Z=-X
- Y=Y+.28472586917348481D-5*(FCT(X)+FCT(Z))
- X=.30812489886451058D1
- Z=-X
- Y=Y+.25285990277484889D-4*(FCT(X)+FCT(Z))
- X=.27473086248223832D1
- Z=-X
- Y=Y+.17515043180117283D-3*(FCT(X)+FCT(Z))
- X=.24167609048732165D1
- Z=-X
- Y=Y+.9563923198194153D-3*(FCT(X)+FCT(Z))
- X=.20890866609442764D1
- Z=-X
- Y=Y+.41530049119775525D-2*(FCT(X)+FCT(Z))
- X=.17638175798953000D1
- Z=-X
- Y=Y+.14444961574981099D-1*(FCT(X)+FCT(Z))
- X=.14405252201375652D1
- Z=-X
- Y=Y+.40479676984603849D-1*(FCT(X)+FCT(Z))
- X=.11188121524021566D1
- Z=-X
- Y=Y+.9182229707928518D-1*(FCT(X)+FCT(Z))
- X=.7983046277785622D0
- Z=-X
- Y=Y+.16920447194564111D0*(FCT(X)+FCT(Z))
- X=.47864633759449610D0
- Z=-X
- Y=Y+.25396154266475910D0*(FCT(X)+FCT(Z))
- X=.15949293584886247D0
- Z=-X
- Y=Y+.31100103037796308D0*(FCT(X)+FCT(Z))
- RETURN
- END