// g13bj Example Program Text // C# version, NAG Copyright 2008 using System; using NagLibrary; using System.Globalization; namespace NagDotNetExamples { public class G13BJE { static string datafile = "ExampleData/g13bje.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, isttf, j, kfc, kzef, ldparx, n, ncf=0, nev, nfv, npara, nparx, nser, nsttf; int[] mr = new int[7]; int ifail; Console.WriteLine("g13bj Example Program Results"); // Skip heading in data file sr.Reset(); sr.Reset(); kfc = int.Parse(sr.Next()); nev = int.Parse(sr.Next()); nfv = int.Parse(sr.Next()); nser = int.Parse(sr.Next()); kzef = int.Parse(sr.Next()); double[] fsd = new double[nfv]; double[] fva = new double[nfv]; double[] rmsxy = new double[nser]; int[,] mrx = new int[7, nser]; int[,] mt = new int[4, nser]; if (nser > 0 && nfv > 0 && nev > 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-1; 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[npara]; for(i = 1; i<=nser-1; i++) { if (mt[4-1,i-1]>1) { ncf = mt[0, i-1] + mt[1, i-1] + mt[2,i-1]; } } isttf = mr[1-1]*mr[7-1] + mr[2-1] + mr[5-1]*mr[7-1] + mr[3-1] + Math.Max(mr[1-1],mr[6-1]*mr[7-1]) + ncf; double [] sttf = new double [isttf]; if (npara > 0) { sr.Reset(); for (i = 1; i <= npara; i++) { para[i - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } n = nev + nfv; double [, ] xxy = new double[n, nser]; for (i = 1; i <= n; i++) { sr.Reset(); for (j = 1; j <= nser; j++) { xxy[i - 1, j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } sr.Reset(); for (i = 1; i <= nser; i++) { rmsxy[i - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } for (i = 1; i <= 7; i++) { sr.Reset(); for (j = 1; j <= nser; j++) { mrx[i - 1, j - 1] = int.Parse(sr.Next()); } } ldparx = 0; for (i=1; i<=nser-1; i++) { if (rmsxy[i-1] != 0.0E0) { nparx = mrx[1-1,i-1] + mrx[3-1,i-1] + mrx[4-1,i-1] + mrx[6-1,i-1]; ldparx = Math.Max(ldparx,nparx); } } double[,] parx = new double[ldparx, nser]; for (i = 1; i <= 5; i++) { sr.Reset(); for (j = 1; j <= nser; j++) { parx[i - 1, j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } // G13.g13bj(mr, nser, mt, para, npara, kfc, nev, nfv, xxy, kzef, rmsxy, mrx, parx, fva, fsd, sttf, out nsttf, out ifail); // Console.WriteLine(""); if (ifail < 0) { Console.WriteLine(""); Console.WriteLine("** g13bj failed with ifail = {0,5}", ifail); } else { if (ifail != 0) { Console.WriteLine(" {0}{1,3}", ("g13bj fails.") + (" ifail ="), ifail); } if ((((ifail == 0) || (ifail == 8)) || (ifail == 9)) || (ifail == 11)) { Console.WriteLine(" {0}{1,3}{2}", "After processing", nev, " sets of observations"); Console.WriteLine(" {0,3}{1}", nsttf, " values of the state set are derived"); Console.WriteLine(""); for (i = 1; i <= nsttf; i++) { Console.Write(" {0, 8:f4}", sttf[i - 1], i % 7 == 0 || i == nsttf ? "\n" : " "); } Console.WriteLine(""); ; Console.WriteLine(""); Console.WriteLine(" {0}", ("The residual mean square for the") + (" output")); Console.WriteLine(" {0}{1,10:f4}", "series is also derived and its value is", rmsxy[nser - 1]); Console.WriteLine(""); Console.WriteLine(" {0}", "The forecast values and their standard errors are"); Console.WriteLine(""); Console.WriteLine(" {0}", " I FVA FSD"); Console.WriteLine(""); for (i = 1; i <= nfv; i++) { Console.WriteLine(" {0,4}{1,10:f3}{2,10:f4}", i, fva[i - 1], fsd[i - 1]); } Console.WriteLine(""); Console.WriteLine(" {0}", "The values of z(t) and n(t) are"); Console.WriteLine(""); Console.WriteLine(" {0}", " I z1 z2 z3 z4 z5 n"); Console.WriteLine(""); for (i = 1; i <= n; i++) { Console.Write(" {0,3}", i); for (j = 1; j <= nser; j++) { Console.Write(" {0,10:f3}", xxy[i - 1, j - 1]); } Console.WriteLine(""); ; } } } } } // } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine("Exception Raised"); } } } }