public void BesselI1Approx([Range(-3.75, 3.75, 0.25)] double x)
 {
     // Approx by Abramowitz/Stegun 9.8.3
     Assert.AreEqual(Evaluate.Polynomial(x / 3.75, 0.5, 0.0, 0.87890594, 0.0, 0.51498869, 0.0, 0.15084934, 0.0, 0.02658733, 0.0, 0.00301532, 0.0, 0.00032411) * x, SpecialFunctions.BesselI1(x), 1e-8);
 }
 public void BesselI1Exact(double x, double expected)
 {
     AssertHelpers.AlmostEqualRelative(expected, SpecialFunctions.BesselI1(x), 14);
 }
 public void BesselK1Approx([Range(0.20, 2.0, 0.20)] double x)
 {
     // Approx by Abramowitz/Stegun 9.8.7
     Assert.AreEqual(Evaluate.Polynomial(x / 2.0, x * Math.Log(x / 2.0) * SpecialFunctions.BesselI1(x) + 1.0, 0.0, 0.15443144, 0.0, -0.67278579, 0.0, -0.18156897, 0.0, -0.01919402, 0.0, -0.00110404, 0.0, -0.00004686), SpecialFunctions.BesselK1(x) * x, 1e-8);
 }