874beeedb522207a7f4ff3c341364520bafce7f1
[frac.git] / bihom_test.c
blob874beeedb522207a7f4ff3c341364520bafce7f1
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();
15 mpz_t addarray[8];
16 for (int i = 0; i < 8; i++) {
17 mpz_init(addarray[i]);
19 mpz_set_ui(addarray[1], 1);
20 mpz_set_ui(addarray[2], 1);
21 mpz_set_ui(addarray[7], 1);
23 cf_t b = cf_new_bihom(e, pi, addarray);
25 CF_EXPECT_DEC(b, "58598744820488384738");
27 cf_free(b);
28 cf_free(e);
29 cf_free(pi);
31 // Check 2 sin 1 cos 2 = sin 2 = 0.909...
32 cf_t s1, c1;
33 s1 = cf_new_sin1();
34 c1 = cf_new_cos1();
35 mpz_set_ui(addarray[0], 2);
36 mpz_set_ui(addarray[1], 0);
37 mpz_set_ui(addarray[2], 0);
38 mpz_set_si(addarray[7], 1);
39 b = cf_new_bihom(s1, c1, addarray);
41 CF_EXPECT_DEC(b, "09092974268256816953");
43 cf_free(b);
44 cf_free(c1);
45 cf_free(s1);
46 for (int i = 0; i < 8; i++) {
47 mpz_clear(addarray[i]);
49 return 0;