g01fm returns the deviate associated with the lower tail probability of the distribution of the Studentized range statistic.


public static double g01fm(
	double p,
	double v,
	int ir,
	out int ifail
Visual Basic
Public Shared Function g01fm ( _
	p As Double, _
	v As Double, _
	ir As Integer, _
	<OutAttribute> ByRef ifail As Integer _
) As Double
Visual C++
static double g01fm(
	double p, 
	double v, 
	int ir, 
	[OutAttribute] int% ifail
static member g01fm : 
        p : float * 
        v : float * 
        ir : int * 
        ifail : int byref -> float 


Type: System..::..Double
On entry: the lower tail probability for the Studentized range statistic, p0.
Constraint: 0.0<p<1.0.
Type: System..::..Double
On entry: v, the number of degrees of freedom.
Constraint: v1.0.
Type: System..::..Int32
On entry: r, the number of groups.
Constraint: ir2.
Type: System..::..Int32%
On exit: ifail=0 unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).

Return Value

g01fm returns the deviate associated with the lower tail probability of the distribution of the Studentized range statistic.


The externally Studentized range, q, for a sample, x1,x2,,xr, is defined as
where σ^e is an independent estimate of the standard error of the xi. The most common use of this statistic is in the testing of means from a balanced design. In this case for a set of group means, T-1,T-2,,T-r, the Studentized range statistic is defined to be the difference between the largest and smallest means, T-largest and T-smallest, divided by the square root of the mean-square experimental error, MSerror, over the number of observations in each group, n, i.e.,
The Studentized range statistic can be used as part of a multiple comparisons procedure such as the Newman–Keuls procedure or Duncan's multiple range test (see Montgomery (1984) and Winer (1970)).
For a Studentized range statistic the probability integral, Pq;v,r, for v degrees of freedom and r groups, can be written as:
C=vv/2Γv/22v/2-1,  ϕy=12πe-y2/2  and  Φy=-yϕtdt.
For a given probability p0, the deviate q0 is found as the solution to the equation
Pq0;v,r=p0, (1)
using c05az . Initial estimates are found using the approximation given in Lund and Lund (1983) and a simple search procedure.


Lund R E and Lund J R (1983) Algorithm AS 190: probabilities and upper quartiles for the studentized range Appl. Statist. 32(2) 204–210
Montgomery D C (1984) Design and Analysis of Experiments Wiley
Winer B J (1970) Statistical Principles in Experimental Design McGraw–Hill

Error Indicators and Warnings

Note: g01fm may return useful information for one or more of the following detected errors or warnings.
Errors or warnings detected by the method:
If on exit ifail=1, then g01fm returns 0.0.
On entry,p0.0,
The method was unable to find an upper bound for the value of q0. This will be caused by p0 being too close to 1.0.
There is some doubt as to whether full accuracy has been achieved. The returned value should be a reasonable estimate of the true value.
An error occured, see message report.


The returned solution, q*, to equation (1) is determined so that at least one of the following criteria apply.
(a) Pq*;v,r-p00.000005
(b) q0-q*0.000005×max1.0,q*.

Parallelism and Performance


Further Comments

To obtain the factors for Duncan's multiple-range test, equation (1) has to be solved for p1, where p1=p0r-1, so on input p should be set to p0r-1.


Three values of p, ν and r are read in and the Studentized range deviates or quantiles are computed and printed.

Example program (C#): g01fme.cs

Example program data: g01fme.d

Example program results: g01fme.r

See Also