// g02gk Example Program Text // C# version, NAG Copyright 2008 using System; using NagLibrary; using System.Globalization; using System.IO; namespace NagDotNetExamples { public class G02GKE { static string datafile = "ExampleData/g02gke.d"; static void Main(String[] args) { if (args.Length == 1) { datafile = args[0]; } StartExample(); } public static void StartExample() { try { DataReader sr = new DataReader(datafile); double a, dev, eps, tol; int i, iconst, idf, ip, iprint, irank, j, m, maxit, n; int ifail; Console.WriteLine("g02gk Example Program Results"); // Skip heading in data file a = 0.0; sr.Reset(); sr.Reset(); n = int.Parse(sr.Next()); m = int.Parse(sr.Next()); iprint = int.Parse(sr.Next()); double[] b = new double[9]; double[] wt = new double[n]; double[,] x = new double[n, m]; double[] y = new double[n]; int[] isx = new int[m]; if (n >= 2 && m >= 1) { for (i = 1; i <= n; i++) { sr.Reset(); for (j = 1; j <= m; j++) { x[i - 1, j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } y[i - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } sr.Reset(); for (j = 1; j <= m; j++) { isx[j - 1] = int.Parse(sr.Next()); } ip = int.Parse(sr.Next()); double[] cov = new double[(ip*ip+ip)/2]; double[] se = new double[ip]; double[,] v = new double[n, 7+ip]; // Set control parameters eps = 0.0000010e0; tol = 0.000050e0; maxit = 10; // // Fit Log-linear model using g02gc G02.g02gc("L", "M", "N", "U", n, x, m, isx, ip, y, wt, a, out dev, out idf, b, out irank, se, cov, v, tol, maxit, iprint, eps, out ifail); // if ((ifail == 0) || (ifail >= (7))) { Console.WriteLine(" "); Console.WriteLine(" {0}{1,12:e4}", "Deviance = ", dev); Console.Write(" {0}{1,2}", "Degrees of freedom = ", idf); Console.WriteLine(" "); // Input constraints iconst = ip - irank; double[,] c = new double[ip, iconst]; for (i = 0; i < ip; i++) { sr.Reset(); for (j = 0; j < iconst; j++) { c[i, j] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } // G02.g02gk(ip, iconst, v, c, b, 1.00e0, se, cov, out ifail); // if (ifail == 0) { Console.Write(" {0}", " Estimate Standard error"); Console.WriteLine(" "); for (i = 0; i < ip; i++) { Console.WriteLine(" {0,14:f4}{1,14:f4}", b[i], se[i]); } } else { Console.WriteLine(" "); Console.WriteLine("** g02gk failed with ifail = {0,5}", ifail); } } else { Console.WriteLine(" "); Console.WriteLine("** g02gc failed with ifail = {0,5}", ifail); } } // } catch (Exception e) { Console.WriteLine(e.Message); Console.Write( "Exception Raised"); } } } }