// g13cc Example Program Text // C# version, NAG Copyright 2008 using System; using NagLibrary; using System.Globalization; namespace NagDotNetExamples { public class G13CCE { static string datafile = "ExampleData/g13cce.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 pxy = 0.0; int i, ic, ii, ish, iw, kc, l, mtxy, mw, nc, ng, nxy; int ifail; Console.WriteLine("g13cc Example Program Results"); // Skip heading in data file sr.Reset(); sr.Reset(); nxy = int.Parse(sr.Next()); nc = int.Parse(sr.Next()); ic = int.Parse(sr.Next()); mtxy = 1; pxy = 0.10e0; // Parzen window and zero covariance at lag 35 iw = 4; mw = 35; // Alignment shift of 3, 50 covariances to be calculated ish = 3; kc = 350; l = 80; int nxyg; if (ic==0) { nxyg = Math.Max(kc,l); } else { nxyg = l; } int lxg = Math.Max(nxyg, nxy); int lyg = Math.Max(nxyg, nxy); double[] cxy = new double[nc]; double[] cyx = new double[nc]; double[] xg = new double[lxg]; double[] yg = new double[lyg]; if (nxy > 0 && nxy <= nxyg && nc > 0) { if (ic == 0) { sr.Reset(); for (i = 1; i <= nxy; i++) { xg[i - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } sr.Reset(); for (i = 1; i <= nxy; i++) { yg[i - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } else { sr.Reset(); for (i = 1; i <= nc; i++) { cxy[i - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } sr.Reset(); for (i = 1; i <= nc; i++) { cyx[i - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } // Set parameters for call to g13cc // Mean correction and 10 percent taper // G13.g13cc(nxy, mtxy, pxy, iw, mw, ish, ic, nc, cxy, cyx, kc, l, xg, yg, out ng, out ifail); // Console.WriteLine(""); Console.WriteLine(" {0}", " Returned cross covariances"); Console.WriteLine(""); Console.WriteLine(" {0}", "Lag XY YX Lag XY YX Lag XY YX"); Console.WriteLine(""); for (i = 1; i <= nc; i += 3) { for (ii = i; ii <= Math.Min(i + 2, nc); ii++) { Console.Write("{0,3} {1,8:f4} {2,8:f4}", ii - 1, cxy[ii - 1], cyx[ii - 1]); } Console.WriteLine(""); ; } Console.WriteLine(""); Console.WriteLine(" {0}", " Returned sample spectrum"); Console.WriteLine(""); Console.WriteLine(" {0}", " Real Imaginary Real Imaginary Real Imaginary"); Console.WriteLine(" {0}", "Lag part part Lag part part Lag part part"); Console.WriteLine(""); for (i = 1; i <= ng; i += 3) { for (ii = i; ii <= Math.Min(i + 2, ng); ii++) { Console.Write("{0,3} {1,8:f4} {2,8:f4}", ii - 1, xg[ii - 1], yg[ii - 1]); } Console.WriteLine(""); ; } } // } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine("Exception Raised"); } } } }