/* nag_censored_normal (g07bbc) Example Program. * * Copyright 2001 Numerical Algorithms Group. * * Mark 7, 2001. */ #include #include #include #include #include int main(void) { /* Scalars */ double corr, dev, sexmu, sexsig, tol, xmu, xsig; Integer exit_status, i, maxit, n, nit; /* Arrays */ char *method=0; double *x=0, *xc=0; Integer *ic=0, *nobs=0; NagError fail; Nag_CEMethod method_enum; INIT_FAIL(fail); exit_status = 0; Vprintf("g07bbc Example Program Results\n"); /* Skip heading in data file */ Vscanf("%*[^\n] "); /* Allocate memory */ if ( !(method = NAG_ALLOC(2, char)) ) { Vprintf("Allocation failure\n"); exit_status = -1; goto END; } Vscanf("%ld ' %1s '%lf%lf%lf%ld%*[^\n] ", &n, method, &xmu, &xsig, &tol, &maxit); /* Allocate memory */ if ( !(x = NAG_ALLOC(n, double)) || !(xc = NAG_ALLOC(n, double)) || !(ic = NAG_ALLOC(n, Integer)) || !(nobs = NAG_ALLOC(4, Integer)) ) { Vprintf("Allocation failure\n"); exit_status = -1; goto END; } for (i = 1; i <= n; ++i) Vscanf("%lf%lf%ld", &x[i - 1], &xc[i - 1], &ic[i - 1]); Vscanf("%*[^\n] "); if (!(strcmp(method, "N"))) method_enum = Nag_CE_NR; else if (!(strcmp(method, "E"))) method_enum = Nag_CE_EM; else { Vprintf("Invalid method\n"); exit_status = -1; goto END; } g07bbc(method_enum, n, x, xc, ic, &xmu, &xsig, tol, maxit, &sexmu, &sexsig, &corr, &dev, nobs, &nit, &fail); if (fail.code != NE_NOERROR) { Vprintf("Error from g07bbc.\n%s\n", fail.message); exit_status = 1; goto END; } Vprintf("\n"); Vprintf(" Mean = %8.4f\n", xmu); Vprintf(" Standard deviation = %8.4f\n", xsig); Vprintf(" Standard error of mean = %8.4f\n", sexmu); Vprintf(" Standard error of sigma = %8.4f\n", sexsig); Vprintf(" Correlation coefficient = %8.4f\n", corr); Vprintf(" Number of right censored observations = %2ld\n", nobs[0]); Vprintf(" Number of left censored observations = %2ld\n", nobs[1]); Vprintf(" Number of interval censored observations = %2ld\n", nobs[2]); Vprintf(" Number of exactly specified observations = %2ld\n", nobs[3]); Vprintf(" Number of iterations = %2ld\n", nit); Vprintf(" Log-likelihood = %8.4f\n", dev); END: if (method) NAG_FREE(method); if (x) NAG_FREE(x); if (xc) NAG_FREE(xc); if (ic) NAG_FREE(ic); if (nobs) NAG_FREE(nobs); return exit_status; }