share/tensor/itensor.lisp: make X and D shared lexical variables for the functions...
[maxima.git] / share / numeric / rtest_bffac.mac
blob934dc2f4dacdd5398c6860b19517becfc186462e
1 (kill (all),
2  if not ?fboundp ('bffac) then load ("bffac"),
3  float_approx_equal_tolerance : 1e-13,
4  0);
5 0;
7 (float_near_zero (x) := is (abs(x) < float_approx_equal_tolerance),
8  0);
9 0$
11 /* Easy standard values of zeta */
12 bfzeta (0, 10);
13 ''(bfloat(-1/2))$
15 bfzeta (1, 10);
16 inf$
18 float_near_zero (bfzeta(-2, 10));
19 true$
21 /* zeta(2) = %pi^2/6 (A&S 23.2.24) */
22 float_near_zero (bfzeta(2, 14) - %pi^2/6);
23 true$
25 /* zeta(4) = %pi^4/90 (A&S 23.2.25) */
26 float_near_zero (bfzeta(4, 15) - %pi^4/90);
27 true$
29 /* Don't die horribly with arguments we can't evaluate zeta for */
30 bfzeta (x, 10);
31 'bfzeta (x, 10)$
33 bfzeta (0, fpp);
34 'bfzeta (0, fpp)$
36 bfzeta (%i, fpp);
37 'bfzeta (%i, fpp)$
39 /* Check the first zero is in the right place */
40 float_near_zero (bfzeta (1/2+%i*14.13472514173469379045b0, 16));
41 true$
43 /* SF bug report #3426: "Algorithm precision problem for small positive values in bfpsi0" */
44 bfpsi0(1e-10, 1);
45 -1b10;
47 bfpsi0(1e-10, 6);
48 -1b10;
50 bfpsi0(1e-10, 16);
51 -10000000000.577215665b0;
53 bfpsi0(1e-10, 32);
54 -10000000000.577215665b0;
56 (reset(float_approx_equal_tolerance),0);