// d01al Example Program Text // C# version, NAG Copyright 2008 using System; using NagLibrary; using System.Globalization; namespace NagDotNetExamples { public class D01ALE { static void Main(String[] args) { StartExample(); } public static int kount = 0; public static void StartExample() { try { const int npts = 1; const int lw = 800; D01.D01AL_F fD01AL = new D01.D01AL_F(f); double a, abserr, b, epsabs, epsrel, result; double[] points = new double[1]; double[] w = new double[lw]; int subintvls; int ifail; Console.WriteLine("d01al Example Program Results"); epsabs = 0.00e0; epsrel = 1.00e-03; a = 0.00e0; b = 1.00e0; points[0] = 1.00e0 / 7.00e0; kount = 0; // D01.d01al(fD01AL, a, b, npts, points, epsabs, epsrel, out result, out abserr, w, out subintvls, out ifail); // if (ifail >= 0) { Console.WriteLine(""); Console.WriteLine(" {0}{1,10:f4}", "a - lower limit of integration = ", a); Console.WriteLine(" {0}{1,10:f4}", "b - upper limit of integration = ", b); Console.WriteLine(" {0}{1,9:e2}", "epsabs - absolute accuracy requested = ", epsabs); Console.WriteLine(" {0}{1,9:e2}", "epsrel - relative accuracy requested = ", epsrel); Console.WriteLine(" {0}{1,10:f4}", "points[0] - given break-point = ", points[0]); Console.WriteLine(""); if (ifail != 0) { Console.WriteLine(" {0}{1,4}", "ifail = ", ifail); } if (ifail <= 5) { Console.WriteLine(" {0}{1,9:f5}", " result - approximation to the integral = ", result); Console.WriteLine(" {0}{1,9:e2}", " abserr - estimate of the absolute error = ", abserr); Console.WriteLine(" {0}{1,4}", " kount - number of function evaluations = ", kount); Console.WriteLine(" {0}{1,4}", " subintvls - number of subintervals used = ", subintvls); } } else { Console.WriteLine(""); Console.WriteLine("** d01al failed with ifail = {0,5}", ifail); } // } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine("Exception Raised"); } ; } // public static double f(double x) { double fValue; double a; kount = kount + 1; a = Math.Abs(x - 1.00e0 / 7.00e0); fValue = 0.00e0; if (a != 0.00e0) { fValue = Math.Pow(a, (-0.50e0)); } return fValue; } } }