#!/usr/bin/env ruby
# Ahmed's Integral
# See e.g. http://mathworld.wolfram.com/AhmedsIntegral.html
#
require("gsl")
include GSL
include Math

f = Function.alloc { |x| 
  sqrtx22 = sqrt(x*x + 2)
  atan(sqrtx22)/(sqrtx22*(x*x + 1))
}

val = f.qng(0, 1)[0]

puts("Ahmed's integral")
puts("Expect: 5pi^2/96 = #{5.0*M_PI*M_PI/96}")
puts("QNG result:        #{val}")


 
