// d01pa Example Program Text // C# version, NAG Copyright 2008 using System; using NagLibrary; using System.Globalization; namespace NagDotNetExamples { public class D01PAE { static void Main(String[] args) { StartExample(); } public static void StartExample() { try { const int ndim = 3; const int ldvert = ndim + 1; const int sdvert = 2 * (ndim + 1); const int mxord = 5; D01.D01PA_FUNCTN functnD01PA = new D01.D01PA_FUNCTN(functn); double esterr; int maxord, minord, nevals; double[] finvls = new double[mxord]; double[,] vert = new double[ldvert, sdvert]; int ifail; Console.WriteLine("d01pa Example Program Results"); for (int j = 1; j <= ldvert; j++) { for (int k = 1; k <= ndim; k++) { vert[j - 1, k - 1] = 0.00e0; } if (j > 1) { vert[j - 1, j - 1 - 1] = 1.00e0; } } minord = 0; nevals = 1; Console.WriteLine(""); Console.WriteLine(" {0}", "MAXORD Estimated Estimated Integrand"); Console.WriteLine(" {0}", " value accuracy evaluations"); for (maxord = 1; maxord <= mxord; maxord++) { // D01.d01pa(ndim, vert, functnD01PA, ref minord, maxord, finvls, out esterr, out ifail); // if (ifail == 0) { Console.WriteLine(" {0,4}{1,13:f5}{2,16:e3}{3,15}", maxord, finvls[maxord - 1], esterr, nevals); nevals = (nevals * (maxord + ndim + 1)) / maxord; } else { Console.WriteLine(""); Console.WriteLine("** d01pa failed with ifail = {0,5}", ifail); goto L80; } } L80: ; // } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine("Exception Raised"); } ; } // public static double functn(int ndim, double[] x) { double functnValue; functnValue = Math.Exp(x[0] + x[1] + x[2]) * Math.Cos(x[0] + x[1] + x[2]); return functnValue; } } }