// g01na Example Program Text // C# version, NAG Copyright 2008 using System; using NagLibrary; using System.Globalization; using System.IO; namespace NagDotNetExamples { public class G01NAE { static string datafile = "ExampleData/g01nae.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 beta, con; int i, j, l, n; int ifail; Console.WriteLine("g01na Example Program Results"); // Skip heading in data file sr.Reset(); sr.Reset(); beta = double.Parse(sr.Next(), CultureInfo.InvariantCulture); con = double.Parse(sr.Next(), CultureInfo.InvariantCulture); sr.Reset(); n = int.Parse(sr.Next()); l = int.Parse(sr.Next()); if (n >= 1 && l <= 12) { // // Compute a, emu, and sigma for simple autoregression // double[,] a = new double[n, n]; double[] emu = new double[n]; double[] rkum = new double[l]; double[] rmom = new double[l]; double[,] sigma = new double[n, n]; for (i = 1; i <= n; i++) { for (j = i; j <= n; j++) { a[j - 1, i - 1] = 0.00e0; } } for (i = 1; i <= n - 1; i++) { a[i + 1 - 1, i - 1] = 0.50e0; } emu[0] = con * beta; for (i = 1; i <= n - 1; i++) { emu[i + 1 - 1] = beta * emu[i - 1]; } sigma[0, 0] = 1.00e0; for (i = 2; i <= n; i++) { sigma[i - 1, i - 1] = beta * beta * sigma[i - 1 - 1, i - 1 - 1] + 1.00e0; } for (i = 1; i <= n; i++) { for (j = i + 1; j <= n; j++) { sigma[j - 1, i - 1] = beta * sigma[j - 1 - 1, i - 1]; } } // G01.g01na("M", "M", n, a, emu, sigma, l, rkum, rmom, out ifail); // if (ifail == 0) { Console.WriteLine(""); Console.WriteLine("{0}{1,3}{2}{3,6:f3}{4}{5,6:f3}", " N = ", n, " BETA = ", beta, " CON = ", con); Console.WriteLine(""); Console.WriteLine(" {0}", " Cumulants Moments"); Console.WriteLine(""); for (i = 1; i <= l; i++) { Console.WriteLine("{0,3}{1,12:e4} {2,12:e4}", i, rkum[i - 1], rmom[i - 1]); } } else { Console.WriteLine(""); Console.WriteLine("** g01na failed with ifail = {0,5}", ifail); } } // } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine( "Exception Raised"); } } } }