-
Notifications
You must be signed in to change notification settings - Fork 0
/
tests.F90
70 lines (57 loc) · 1.57 KB
/
tests.F90
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
64
65
66
67
68
69
70
program main
use precision
use cudabigquad, only : bigLc => gauss_Legendre
use bigquad, only : bigL => gauss_Legendre
use quadrature,only : smallL => gauss_Legendre,chris => gauss_Christoffel
implicit none
integer(kind=int1), parameter :: n1 = 1000000, n2 = 1000
integer(kind=int1) :: i
real(kind=real2) :: time0,time1
real(kind=real2) :: sumx,sumw
real(kind=real2) :: x(n1),w(n1),t(n1)
real(kind=real2) :: xs(n2),ws(n2)
print *,'TESTING CUDA BIGQ, N = ',n1
call cpu_time(time0)
call bigLc(n1,x,w)
call cpu_time(time1)
print *,'runtime: ',time1 - time0
print *,'COMPLETE'
sumx = 0d0; sumw = 0d0
do i=1,n1
sumx = sumx + x(i)
sumw = sumw + w(i)
enddo
print *,'NODE SUM ERROR = ',sumx
print *,'WEIGHT SUM ERROR = ',sumw-2d0
print *
print *,'TESTING BIGQ, N = ',n1
call cpu_time(time0)
call bigL(n1,x,w)
call cpu_time(time1)
print *,'runtime: ',time1 - time0
print *,'COMPLETE'
sumx = 0d0; sumw = 0d0
do i=1,n1
sumx = sumx + x(i)
sumw = sumw + w(i)
enddo
print *,'NODE SUM ERROR = ',sumx
print *,'WEIGHT SUM ERROR = ',sumw-2d0
print *
print *,'TESTING SMALLQ, N = ',n2
call cpu_time(time0)
call smallL(n2,xs,ws)
call cpu_time(time1)
print *,'runtime: ',time1 - time0
print *,'COMPLETE'
print *
print *
print *,'TESTING CHRISTOFFEL, N = ',n2
call cpu_time(time0)
call chris(n2,[2d0,1d0, 1d0],xs,ws)
call cpu_time(time1)
print *,'runtime: ',time1 - time0
print *,'COMPLETE'
print *
return
end program main