/* nag_outlier_peirce_two_var (g07gbc) Example Program.
*
* Copyright 2017 Numerical Algorithms Group.
*
* Mark 26.1, 2017.
*/
/* Pre-processor includes */
#include <stdio.h>
#include <math.h>
#include <nag.h>
#include <nag_stdlib.h>
#include <nagg07.h>
int main(void)
{
/* Integer scalar and array declarations */
Integer n, exit_status;
/* NAG structures and types */
Nag_Boolean outlier;
NagError fail;
/* Double scalar and array declarations */
double e, var1, var2, x, lx, ux;
/* Initialize the error structure */
INIT_FAIL(fail);
exit_status = 0;
printf("nag_outlier_peirce_two_var (g07gbc) Example Program Results\n");
/* Skip headings in data file */
scanf("%*[^\n] ");
/* Loop through all the lines in the input file, reading in the sample size,
variances and value to test */
while (scanf("%" NAG_IFMT " %lf %lf %lf%*[^\n] ", &n, &e, &var1, &var2)
!= EOF) {
/* Use nag_outlier_peirce_two_var (g07gbc) to check whether e is a
potential outlier */
outlier =
nag_outlier_peirce_two_var(n, e, var1, var2, &x, &lx, &ux, &fail);
if (fail.code != NE_NOERROR) {
printf("Error from nag_outlier_peirce_two_var (g07gbc).\n%s\n",
fail.message);
exit_status = 1;
goto END;
}
/* Display the results */
printf(" Sample size : %10" NAG_IFMT "\n",
n);
printf(" Largest absolute residual (E) : %10.3f\n", e);
printf(" Variance for whole sample : %10.3f\n", var1);
printf(" Variance excluding E : %10.3f\n", var2);
printf(" Estimate for cutoff (X) : %10.3f\n", x);
printf(" Lower limit for cutoff (LX) : %10.3f\n", lx);
printf(" Upper limit for cutoff (UX) : %10.3f\n", ux);
if (outlier)
printf(" E is a potential outlier\n");
else
printf(" E does not appear to be an outlier\n");
printf("\n");
}
END:
return exit_status;
}