GNU Octave 10.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 
Loading...
Searching...
No Matches
gennch.f
Go to the documentation of this file.
1 REAL function gennch(df,xnonc)
2C**********************************************************************
3C
4C REAL FUNCTION GENNCH( DF, XNONC )
5C Generate random value of Noncentral CHIsquare variable
6C
7C
8C Function
9C
10C
11
12C Generates random deviate from the distribution of a noncentral
13C chisquare with DF degrees of freedom and noncentrality parameter
14C XNONC.
15C
16C
17C Arguments
18C
19C
20C DF --> Degrees of freedom of the chisquare
21C (Must be >= 1.0)
22C REAL DF
23C
24C XNONC --> Noncentrality parameter of the chisquare
25C (Must be >= 0.0)
26C REAL XNONC
27C
28C
29C Method
30C
31C
32C Uses fact that noncentral chisquare is the sum of a chisquare
33C deviate with DF-1 degrees of freedom plus the square of a normal
34C deviate with mean sqrt(XNONC) and standard deviation 1.
35C
36C**********************************************************************
37C .. Scalar Arguments ..
38 REAL df,xnonc
39C ..
40C .. External Functions ..
41C JJV changed these to call SGAMMA and SNORM directly
42C REAL genchi,gennor
43C EXTERNAL genchi,gennor
44 REAL sgamma,snorm
45 EXTERNAL sgamma,snorm
46C ..
47C .. Intrinsic Functions ..
48 INTRINSIC sqrt
49C ..
50C JJV changed abort to df < 1, and added case: df = 1
51C .. Executable Statements ..
52 IF (.NOT. (df.LT.1.0.OR.xnonc.LT.0.0)) GO TO 10
53 WRITE (*,*) 'DF < 1 or XNONC < 0 in GENNCH - ABORT'
54 WRITE (*,*) 'Value of DF: ',df,' Value of XNONC',xnonc
55 CALL xstopx ('DF < 1 or XNONC < 0 in GENNCH - ABORT')
56
57C JJV changed this to call SGAMMA and SNORM directly
58C gennch = genchi(df-1.0) + gennor(sqrt(xnonc),1.0)**2
59
60 10 IF (df.GE.1.000001) GO TO 20
61C JJV case DF = 1.0
62 gennch = (snorm() + sqrt(xnonc))**2
63 GO TO 30
64
65C JJV case DF > 1.0
66 20 gennch = 2.0*sgamma((df-1.0)/2.0) + (snorm() + sqrt(xnonc))**2
67 30 RETURN
68
69 END
real function gennch(df, xnonc)
Definition gennch.f:2
real function sgamma(a)
Definition sgamma.f:2
real function snorm()
Definition snorm.f:2