-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.c
executable file
·63 lines (47 loc) · 1.42 KB
/
main.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/time.h>
#include "bignum.h"
#include "accessor.h"
#include "bignumIO.h"
#include "operation.h"
#include "mathmetical_func.h"
/*********************************/
int main(void)
{
struct NUMBER solution;
struct NUMBER arctan_denom, arctan_solution;
struct NUMBER multiplier;
struct timeval tv;
double tstart, tend;
gettimeofday(&tv, NULL);
tstart = (double)tv.tv_sec + (double)tv.tv_usec * 1.e-6;
clearByZero(&solution);
clearByZero(&arctan_denom);
clearByZero(&arctan_solution);
clearByZero(&multiplier);
// 48*arctan(1/18)
setInt(&arctan_denom, 18);
arctan(&arctan_denom, &arctan_solution);
setInt(&multiplier, 48);
directMultiple(&arctan_solution, &multiplier);
directAdd(&solution, &arctan_solution);
// 32*arctan(1/57)
setInt(&arctan_denom, 57);
arctan(&arctan_denom, &arctan_solution);
setInt(&multiplier, 32);
directMultiple(&arctan_solution, &multiplier);
directAdd(&solution, &arctan_solution);
// -20*arctan(1/239)
setInt(&arctan_denom, 239);
arctan(&arctan_denom, &arctan_solution);
setInt(&multiplier, 20);
directMultiple(&arctan_solution, &multiplier);
directSub(&solution, &arctan_solution);
outputToLocalFile(&solution);
gettimeofday(&tv, NULL);
tend = (double)tv.tv_sec + (double)tv.tv_usec * 1.e-6;
printf("Execution Time:%lf\n", tend - tstart);
return (0);
}