// g02bu Example Program Text // C# version, NAG Copyright 2008 using System; using NagLibrary; using System.Globalization; using System.IO; namespace NagDotNetExamples { public class G02BUE { static string datafile = "ExampleData/g02bue.d"; static void Main(String[] args) { if (args.Length == 1) { datafile = args[0]; } StartExample(); } public static void StartExample() { try { DataReader sr = new DataReader(datafile); const double one = 1.00e0; double alpha, sw; int j, k, m, mm, n; string mean = "", weight = ""; int ifail; Console.WriteLine("g02bu Example Program Results"); // Skip heading in data file sr.Reset(); try { sr.Reset(); mean = sr.Next(); weight = sr.Next(); m = int.Parse(sr.Next()); n = int.Parse(sr.Next()); } catch { goto L20; } double[] c = new double[(m*m+m)/2]; double[] v = new double[(m*m+m)/2]; double[] wmean = new double[m]; double[] wt = new double[n]; double[,] x = new double[n, m]; if (m >= 1 && n >= 1) { sr.Reset(); for (j = 1; j <= n; j++) { wt[j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } sr.Reset(); for (j = 1; j <= n; j++) { for (k = 1; k <= m; k++) { x[j - 1, k - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } // // Calculate sums of squares and cross-products matrix G02.g02bu(mean, weight, n, m, x, wt, out sw, wmean, c, out ifail); // if (ifail == 0) { Console.WriteLine(" "); Console.Write(" {0}", "Means\n\n"); for (j = 1; j <= m; j++) { Console.Write(" {0,10:f4}", wmean[j - 1]); } Console.WriteLine(" "); Console.WriteLine(" "); Console.Write(" {0}", "Weights\n\n"); for (j = 1; j <= n; j++) { Console.Write(" {0,10:f4}", wt[j - 1]); } Console.WriteLine(" "); Console.WriteLine(" "); // Print the sums of squares and cross products matrix X04.x04cc("Upper", "Non-unit", m, c, "Sums of squares and cross-products", out ifail); if (sw > one) { // Calculate the variance matrix alpha = one / (sw - one); mm = (m * (m + 1)) / 2; F06.f06fd(mm, alpha, c, 1, v, 1, out ifail); // Print the variance matrix Console.WriteLine(" "); X04.x04cc("Upper", "Non-unit", m, v, "Variance matrix", out ifail); } } else { Console.WriteLine(" "); Console.WriteLine("** g02bu failed with ifail = {0,5}", ifail); } } else { Console.Write(" {0}{1,6}{2}{3,6}", "M or N is too large. M =", m, ", N =", n); } L20: ; // } catch (Exception e) { Console.WriteLine(e.Message); Console.Write( "Exception Raised"); } } } }