Compute HAKMEM constant.
[frac.git] / bihom_test.c
blob36fce20aee34104426d2a768748104f08e4b3c01
1 // Test quadratic algorithm.
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <string.h>
6 #include <gmp.h>
7 #include "cf.h"
8 #include "test.h"
10 int main() {
11 // I used bc to get the reference values.
12 // Check e + pi
13 cf_t e = cf_new_e();
14 cf_t pi = cf_new_pi();
16 cf_t b = cf_new_add(e, pi);
18 CF_EXPECT_DEC(b, "5.8598744820488384738");
20 cf_free(b);
21 cf_free(e);
22 cf_free(pi);
24 // Check e * pi
25 e = cf_new_e();
26 pi = cf_new_pi();
28 b = cf_new_mul(e, pi);
30 CF_EXPECT_DEC(b, "8.53973422267356706546");
32 cf_free(b);
33 cf_free(e);
34 cf_free(pi);
36 // Check 2 sin 1 cos 1 = sin 2.
37 cf_t s1, c1;
38 s1 = cf_new_sin1();
39 c1 = cf_new_cos1();
40 mpz_t a[8];
41 mpz8_init(a);
42 mpz8_set_int(a,
43 2, 0, 0, 0,
44 0, 0, 0, 1);
45 b = cf_new_bihom(s1, c1, a);
47 CF_EXPECT_DEC(b, "0.9092974268256816953");
49 cf_free(b);
50 cf_free(c1);
51 cf_free(s1);
53 // Check 2 (cos 1)^2 - 1 = cos 2.
54 c1 = cf_new_cos1();
55 cf_t t[2];
56 cf_tee(t, c1);
57 mpz8_set_int(a,
58 2, 0, 0, -1,
59 0, 0, 0, 1);
60 b = cf_new_bihom(t[0], t[1], a);
62 CF_EXPECT_DEC(b, "-0.41614683654714238699");
64 cf_free(t[0]);
65 cf_free(t[1]);
66 cf_free(b);
67 cf_free(c1);
69 mpz8_clear(a);
70 return 0;