// g13bg Example Program Text // C# version, NAG Copyright 2008 using System; using NagLibrary; using System.Globalization; namespace NagDotNetExamples { public class G13BGE { static string datafile = "ExampleData/g13bge.d"; static void Main(String[] args) { if (args.Length == 1) { datafile = args[0]; } StartExample(); } public static void StartExample() { try { DataReader sr = new DataReader(datafile); int i, j, kzef, nnv, npara, nser, nsttf; int ifail; int[] mr = new int[7]; Console.WriteLine("g13bg Example Program Results"); // Skip heading in data file sr.Reset(); sr.Reset(); nsttf = int.Parse(sr.Next()); nser = int.Parse(sr.Next()); nnv = int.Parse(sr.Next()); kzef = int.Parse(sr.Next()); double[] res = new double[nnv]; double[] sttf = new double[nsttf]; double[,] xxyn = new double[nnv, nser]; int[,] mt = new int[4, nser]; if (nsttf > 0 && nser > 0 && nnv > 0) { sr.Reset(); for (i = 1; i <= 7; i++) { mr[i - 1] = int.Parse(sr.Next()); } for (i = 1; i <= 4; i++) { sr.Reset(); for (j = 1; j <= nser; j++) { mt[i - 1, j - 1] = int.Parse(sr.Next()); } } npara = 0; for (i = 1; i <= nser; i++) { npara = npara + mt[1, i - 1] + mt[2, i - 1]; } npara = npara + mr[0] + mr[2] + mr[3] + mr[5] + nser; double[] para = new double[10]; sr.Reset(); for (i = 1; i <= nsttf; i++) { sttf[i - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } if (npara > 0) { sr.Reset(); for (i = 1; i <= npara; i++) { para[i - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } for (i = 1; i <= nnv; i++) { sr.Reset(); for (j = 1; j <= nser; j++) { xxyn[i - 1, j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } // G13.g13bg(sttf, nsttf, mr, nser, mt, para, npara, nnv, xxyn, kzef, res, out ifail); // Console.WriteLine(""); Console.WriteLine(" {0}", "The updated state set\r\n"); for (i = 1; i <= nsttf; i++) { Console.Write("{0, 8:f4}{1}", sttf[i - 1], i % 6 == 0 ? "\n" : " "); } Console.WriteLine(""); ; Console.WriteLine(""); Console.WriteLine(" {0}", "The residuals (after differencing)"); for (i = 1; i <= nnv; i++) { Console.WriteLine(" {0,4}{1,10:f4}", i, res[i - 1]); } Console.WriteLine(""); Console.WriteLine(" {0}", "The values of z(t) and n(t)\r\n"); for (i = 1; i <= nnv; i++) { Console.Write(" {0, 4}", i); for (j = 1; j <= nser; j++) { Console.Write(" {0,10:f4}", xxyn[i - 1, j - 1]); } Console.WriteLine(""); ; } } } // } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine("Exception Raised"); } } } }