// g02lc Example Program Text // C# version, NAG Copyright 2008 using System; using NagLibrary; using System.Globalization; using System.IO; namespace NagDotNetExamples { public class G02LCE { static string datafile = "ExampleData/g02lce.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 rcond = 0.0; int i, ip, iscale, j, maxfac, my, nfact, orig, vipopt; int ifail; Console.WriteLine("g02lc Example Program Results"); // Skip header in data file sr.Reset(); // Read data values sr.Reset(); ip = int.Parse(sr.Next()); my = int.Parse(sr.Next()); maxfac = int.Parse(sr.Next()); nfact = int.Parse(sr.Next()); orig = int.Parse(sr.Next()); iscale = int.Parse(sr.Next()); vipopt = int.Parse(sr.Next()); double[,] b = new double[ip, my]; double[,] c = new double[my, maxfac]; double[,] ob = new double[ip+1, my]; double[,] p = new double[ip, maxfac]; double[,] vip = new double[ip, vipopt]; double[,] w = new double[ip, maxfac]; double[] xbar = new double[ip]; double[] xstd = new double[ip]; double[] ybar = new double[my]; double[,] ycv = new double[nfact, my]; double[] ystd = new double[my]; // if (ip <= 1 || my < 1 || maxfac>ip) { Console.Write(" ** Problem size is too small."); goto L20; } // Read P for (i = 1; i <= ip; i++) { sr.Reset(); for (j = 1; j <= maxfac; j++) { p[i - 1, j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } // Read C for (i = 1; i <= my; i++) { sr.Reset(); for (j = 1; j <= maxfac; j++) { c[i - 1, j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } // Read W for (i = 1; i <= ip; i++) { sr.Reset(); for (j = 1; j <= maxfac; j++) { w[i - 1, j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } // Read ycv for (i = 1; i <= nfact; i++) { for (j = 1; j <= my; j++) { ycv[i - 1, j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } // Read means if (orig == 1) { sr.Reset(); for (j = 1; j <= ip; j++) { xbar[j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } sr.Reset(); for (j = 1; j <= my; j++) { ybar[j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } if (iscale != -1) { sr.Reset(); for (j = 1; j <= ip; j++) { xstd[j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } sr.Reset(); for (j = 1; j <= my; j++) { ystd[j - 1] = double.Parse(sr.Next(), CultureInfo.InvariantCulture); } } } // Calculate predictions rcond = -1.00e0; G02.g02lc(ip, my, maxfac, nfact, p, c, w, rcond, b, orig, xbar, ybar, iscale, xstd, ystd, ob, vipopt, ycv, vip, out ifail); if (ifail != 0) { Console.WriteLine("** g02lc failed with ifail = {0,5}", ifail); goto L20; } X04.x04ca("G", "X", ip, my, b, "B", out ifail); if (orig == 1) { X04.x04ca("G", "X", ip + 1, my, ob, "OB", out ifail); } if (vipopt != 0) { X04.x04ca("G", "X", ip, vipopt, vip, "VIP", out ifail); } // L20: ; // } catch (Exception e) { Console.WriteLine(e.Message); Console.Write( "Exception Raised"); } } } }