1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.hipparchus.analysis.integration.gauss;
23
24 import org.hipparchus.analysis.UnivariateFunction;
25 import org.hipparchus.analysis.function.Cos;
26 import org.hipparchus.analysis.function.Inverse;
27 import org.hipparchus.analysis.function.Log;
28 import org.junit.Assert;
29 import org.junit.Test;
30
31
32
33
34
35 public class LegendreHighPrecisionTest {
36 private static GaussIntegratorFactory factory = new GaussIntegratorFactory();
37
38 @Test
39 public void testCos() {
40 final UnivariateFunction cos = new Cos();
41
42 final GaussIntegrator integrator = factory.legendreHighPrecision(7, 0, Math.PI / 2);
43 final double s = integrator.integrate(cos);
44
45 Assert.assertEquals(1, s, Math.ulp(1d));
46 }
47
48
49 @Test
50 public void testInverse() {
51 final UnivariateFunction inv = new Inverse();
52 final UnivariateFunction log = new Log();
53
54 final double lo = 12.34;
55 final double hi = 456.78;
56
57 final GaussIntegrator integrator = factory.legendreHighPrecision(60, lo, hi);
58 final double s = integrator.integrate(inv);
59 final double expected = log.value(hi) - log.value(lo);
60
61 Assert.assertEquals(expected, s, 1e-15);
62 }
63 }