Line | Branch | Exec | Source |
---|---|---|---|
1 | !!!############################################################################# | ||
2 | !!! Code written by Ned Thaddeus Taylor | ||
3 | !!! Code part of the ATHENA library - a feedforward neural network library | ||
4 | !!!############################################################################# | ||
5 | !!! module contains implementation of the tanh activation function | ||
6 | !!!############################################################################# | ||
7 | module activation_tanh | ||
8 | use constants, only: real12 | ||
9 | use custom_types, only: activation_type | ||
10 | implicit none | ||
11 | |||
12 | type, extends(activation_type) :: tanh_type | ||
13 | contains | ||
14 | procedure, pass(this) :: activate_1d => tanh_activate_1d | ||
15 | procedure, pass(this) :: activate_2d => tanh_activate_2d | ||
16 | procedure, pass(this) :: activate_3d => tanh_activate_3d | ||
17 | procedure, pass(this) :: activate_4d => tanh_activate_4d | ||
18 | procedure, pass(this) :: activate_5d => tanh_activate_5d | ||
19 | procedure, pass(this) :: differentiate_1d => tanh_differentiate_1d | ||
20 | procedure, pass(this) :: differentiate_2d => tanh_differentiate_2d | ||
21 | procedure, pass(this) :: differentiate_3d => tanh_differentiate_3d | ||
22 | procedure, pass(this) :: differentiate_4d => tanh_differentiate_4d | ||
23 | procedure, pass(this) :: differentiate_5d => tanh_differentiate_5d | ||
24 | end type tanh_type | ||
25 | |||
26 | interface tanh_setup | ||
27 | procedure initialise | ||
28 | end interface tanh_setup | ||
29 | |||
30 | |||
31 | private | ||
32 | |||
33 | public :: tanh_setup | ||
34 | |||
35 | |||
36 | contains | ||
37 | |||
38 | !!!############################################################################# | ||
39 | !!! initialisation | ||
40 | !!!############################################################################# | ||
41 | 6 | pure function initialise(threshold, scale) | |
42 | implicit none | ||
43 | type(tanh_type) :: initialise | ||
44 | real(real12), optional, intent(in) :: threshold | ||
45 | real(real12), optional, intent(in) :: scale | ||
46 | |||
47 | 6 | initialise%name = "tanh" | |
48 | |||
49 |
2/2✓ Branch 0 taken 5 times.
✓ Branch 1 taken 1 times.
|
6 | if(present(scale))then |
50 | 5 | initialise%scale = scale | |
51 | else | ||
52 | 1 | initialise%scale = 1._real12 | |
53 | end if | ||
54 | |||
55 | !initialise%name = "tanh" | ||
56 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 5 times.
|
6 | if(present(threshold))then |
57 | 1 | initialise%threshold = threshold | |
58 | else | ||
59 | 5 | initialise%threshold = min(huge(1._real12),32._real12) | |
60 | end if | ||
61 | |||
62 | 6 | end function initialise | |
63 | !!!############################################################################# | ||
64 | |||
65 | |||
66 | !!!############################################################################# | ||
67 | !!! tanh transfer function | ||
68 | !!! f = (exp(x) - exp(-x))/(exp(x) + exp(-x)) | ||
69 | !!!############################################################################# | ||
70 |
2/4✓ Branch 0 taken 502 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 502 times.
✗ Branch 3 not taken.
|
502 | pure function tanh_activate_1d(this, val) result(output) |
71 | implicit none | ||
72 | class(tanh_type), intent(in) :: this | ||
73 | real(real12), dimension(:), intent(in) :: val | ||
74 |
3/6✗ Branch 0 not taken.
✓ Branch 1 taken 502 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 502 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 502 times.
|
502 | real(real12), dimension(size(val,dim=1)) :: output |
75 | |||
76 | !! fix rounding errors of division of small numbers | ||
77 | !! alt. could add an epsilon | ||
78 |
7/12✗ Branch 0 not taken.
✓ Branch 1 taken 502 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 502 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 502 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 502 times.
✓ Branch 12 taken 502 times.
✓ Branch 13 taken 502 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 502 times.
|
1004 | where(abs(val).gt.this%threshold) |
79 |
8/16✗ Branch 0 not taken.
✓ Branch 1 taken 502 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 502 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 502 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 502 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 502 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 502 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 502 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 502 times.
|
502 | output = sign(1._real12, val) * this%scale |
80 | elsewhere | ||
81 |
19/38✗ Branch 0 not taken.
✓ Branch 1 taken 502 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 502 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 502 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 502 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 502 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 502 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 502 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 502 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 502 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 502 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 502 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 502 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 502 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 502 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 502 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 502 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 502 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 502 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 502 times.
|
502 | output = this%scale * (exp(val) - exp(-val))/(exp(val) + exp(-val)) |
82 | end where | ||
83 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 502 times.
|
502 | end function tanh_activate_1d |
84 | !!!----------------------------------------------------------------------------- | ||
85 | !!!----------------------------------------------------------------------------- | ||
86 |
2/4✓ Branch 0 taken 1003 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1003 times.
✗ Branch 3 not taken.
|
1003 | pure function tanh_activate_2d(this, val) result(output) |
87 | implicit none | ||
88 | class(tanh_type), intent(in) :: this | ||
89 | real(real12), dimension(:,:), intent(in) :: val | ||
90 |
12/24✗ Branch 0 not taken.
✓ Branch 1 taken 1003 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1003 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1003 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1003 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1003 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1003 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1003 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1003 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1003 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1003 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1003 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1003 times.
|
2006 | real(real12), dimension(size(val,1),size(val,2)) :: output |
91 | |||
92 | !! fix rounding errors of division of small numbers | ||
93 | !! alt. could add an epsilon | ||
94 |
13/22✗ Branch 0 not taken.
✓ Branch 1 taken 1003 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1003 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1003 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1003 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1003 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1003 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1003 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1003 times.
✓ Branch 24 taken 1003 times.
✓ Branch 25 taken 1003 times.
✓ Branch 26 taken 5007 times.
✓ Branch 27 taken 1003 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 5007 times.
|
7013 | where(abs(val).gt.this%threshold) |
95 |
16/32✗ Branch 0 not taken.
✓ Branch 1 taken 1003 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1003 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1003 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1003 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1003 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1003 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1003 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1003 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1003 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1003 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1003 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1003 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1003 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1003 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1003 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 1003 times.
|
1003 | output = sign(1._real12, val) * this%scale |
96 | elsewhere | ||
97 |
38/76✗ Branch 0 not taken.
✓ Branch 1 taken 1003 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1003 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1003 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1003 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1003 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1003 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1003 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1003 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1003 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1003 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1003 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1003 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1003 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1003 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1003 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 1003 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 1003 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 1003 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 1003 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 1003 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 1003 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 1003 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 1003 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 1003 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 1003 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 1003 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 1003 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 1003 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 1003 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 1003 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 1003 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 1003 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 1003 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 1003 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 1003 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 1003 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 1003 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 1003 times.
|
1003 | output = this%scale * (exp(val) - exp(-val))/(exp(val) + exp(-val)) |
98 | end where | ||
99 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 1003 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1003 times.
|
2006 | end function tanh_activate_2d |
100 | !!!----------------------------------------------------------------------------- | ||
101 | !!!----------------------------------------------------------------------------- | ||
102 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
2 | pure function tanh_activate_3d(this, val) result(output) |
103 | implicit none | ||
104 | class(tanh_type), intent(in) :: this | ||
105 | real(real12), dimension(:,:,:), intent(in) :: val | ||
106 |
27/54✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 2 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 2 times.
|
6 | real(real12), dimension(size(val,1),size(val,2),size(val,3)) :: output |
107 | |||
108 | !! fix rounding errors of division of small numbers | ||
109 | !! alt. could add an epsilon | ||
110 |
19/32✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✓ Branch 36 taken 2 times.
✓ Branch 37 taken 2 times.
✓ Branch 38 taken 2 times.
✓ Branch 39 taken 2 times.
✓ Branch 40 taken 2 times.
✓ Branch 41 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
|
8 | where(abs(val).gt.this%threshold) |
111 |
24/48✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 2 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 2 times.
|
2 | output = sign(1._real12, val) * this%scale |
112 | elsewhere | ||
113 |
57/114✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 2 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 2 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 2 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 2 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 2 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 2 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 2 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 2 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 2 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 2 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 2 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 2 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 2 times.
✗ Branch 123 not taken.
✓ Branch 124 taken 2 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 2 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 2 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 2 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 2 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 2 times.
✗ Branch 141 not taken.
✓ Branch 142 taken 2 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 2 times.
✗ Branch 147 not taken.
✓ Branch 148 taken 2 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 2 times.
✗ Branch 153 not taken.
✓ Branch 154 taken 2 times.
✗ Branch 156 not taken.
✓ Branch 157 taken 2 times.
✗ Branch 159 not taken.
✓ Branch 160 taken 2 times.
✗ Branch 162 not taken.
✓ Branch 163 taken 2 times.
✗ Branch 165 not taken.
✓ Branch 166 taken 2 times.
✗ Branch 168 not taken.
✓ Branch 169 taken 2 times.
|
2 | output = this%scale * (exp(val) - exp(-val))/(exp(val) + exp(-val)) |
114 | end where | ||
115 |
3/6✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
6 | end function tanh_activate_3d |
116 | !!!----------------------------------------------------------------------------- | ||
117 | !!!----------------------------------------------------------------------------- | ||
118 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
2 | pure function tanh_activate_4d(this, val) result(output) |
119 | implicit none | ||
120 | class(tanh_type), intent(in) :: this | ||
121 | real(real12), dimension(:,:,:,:), intent(in) :: val | ||
122 | real(real12), dimension(& | ||
123 |
48/96✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 2 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 2 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 2 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 2 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 2 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 2 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 2 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 2 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 2 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 2 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 2 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 2 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 2 times.
✗ Branch 123 not taken.
✓ Branch 124 taken 2 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 2 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 2 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 2 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 2 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 2 times.
✗ Branch 141 not taken.
✓ Branch 142 taken 2 times.
|
8 | size(val,1),size(val,2),size(val,3),size(val,4)) :: output |
124 | |||
125 | !! fix rounding errors of division of small numbers | ||
126 | !! alt. could add an epsilon | ||
127 |
25/42✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✓ Branch 48 taken 2 times.
✓ Branch 49 taken 2 times.
✓ Branch 50 taken 2 times.
✓ Branch 51 taken 2 times.
✓ Branch 52 taken 2 times.
✓ Branch 53 taken 2 times.
✓ Branch 54 taken 2 times.
✓ Branch 55 taken 2 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 2 times.
|
10 | where(abs(val).gt.this%threshold) |
128 |
32/64✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 2 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 2 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 2 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 2 times.
|
2 | output = sign(1._real12, val) * this%scale |
129 | elsewhere | ||
130 |
76/152✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 2 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 2 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 2 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 2 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 2 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 2 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 2 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 2 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 2 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 2 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 2 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 2 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 2 times.
✗ Branch 123 not taken.
✓ Branch 124 taken 2 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 2 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 2 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 2 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 2 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 2 times.
✗ Branch 141 not taken.
✓ Branch 142 taken 2 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 2 times.
✗ Branch 147 not taken.
✓ Branch 148 taken 2 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 2 times.
✗ Branch 153 not taken.
✓ Branch 154 taken 2 times.
✗ Branch 156 not taken.
✓ Branch 157 taken 2 times.
✗ Branch 159 not taken.
✓ Branch 160 taken 2 times.
✗ Branch 162 not taken.
✓ Branch 163 taken 2 times.
✗ Branch 165 not taken.
✓ Branch 166 taken 2 times.
✗ Branch 168 not taken.
✓ Branch 169 taken 2 times.
✗ Branch 171 not taken.
✓ Branch 172 taken 2 times.
✗ Branch 174 not taken.
✓ Branch 175 taken 2 times.
✗ Branch 177 not taken.
✓ Branch 178 taken 2 times.
✗ Branch 180 not taken.
✓ Branch 181 taken 2 times.
✗ Branch 183 not taken.
✓ Branch 184 taken 2 times.
✗ Branch 186 not taken.
✓ Branch 187 taken 2 times.
✗ Branch 189 not taken.
✓ Branch 190 taken 2 times.
✗ Branch 192 not taken.
✓ Branch 193 taken 2 times.
✗ Branch 195 not taken.
✓ Branch 196 taken 2 times.
✗ Branch 198 not taken.
✓ Branch 199 taken 2 times.
✗ Branch 201 not taken.
✓ Branch 202 taken 2 times.
✗ Branch 204 not taken.
✓ Branch 205 taken 2 times.
✗ Branch 207 not taken.
✓ Branch 208 taken 2 times.
✗ Branch 210 not taken.
✓ Branch 211 taken 2 times.
✗ Branch 213 not taken.
✓ Branch 214 taken 2 times.
✗ Branch 216 not taken.
✓ Branch 217 taken 2 times.
✗ Branch 219 not taken.
✓ Branch 220 taken 2 times.
✗ Branch 222 not taken.
✓ Branch 223 taken 2 times.
✗ Branch 225 not taken.
✓ Branch 226 taken 2 times.
|
2 | output = this%scale * (exp(val) - exp(-val))/(exp(val) + exp(-val)) |
131 | end where | ||
132 |
4/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
|
8 | end function tanh_activate_4d |
133 | !!!----------------------------------------------------------------------------- | ||
134 | !!!----------------------------------------------------------------------------- | ||
135 |
2/4✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
2 | pure function tanh_activate_5d(this, val) result(output) |
136 | implicit none | ||
137 | class(tanh_type), intent(in) :: this | ||
138 | real(real12), dimension(:,:,:,:,:), intent(in) :: val | ||
139 | real(real12), dimension(& | ||
140 |
75/150✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 2 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 2 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 2 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 2 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 2 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 2 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 2 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 2 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 2 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 2 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 2 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 2 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 2 times.
✗ Branch 123 not taken.
✓ Branch 124 taken 2 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 2 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 2 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 2 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 2 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 2 times.
✗ Branch 141 not taken.
✓ Branch 142 taken 2 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 2 times.
✗ Branch 147 not taken.
✓ Branch 148 taken 2 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 2 times.
✗ Branch 153 not taken.
✓ Branch 154 taken 2 times.
✗ Branch 156 not taken.
✓ Branch 157 taken 2 times.
✗ Branch 159 not taken.
✓ Branch 160 taken 2 times.
✗ Branch 162 not taken.
✓ Branch 163 taken 2 times.
✗ Branch 165 not taken.
✓ Branch 166 taken 2 times.
✗ Branch 168 not taken.
✓ Branch 169 taken 2 times.
✗ Branch 171 not taken.
✓ Branch 172 taken 2 times.
✗ Branch 174 not taken.
✓ Branch 175 taken 2 times.
✗ Branch 177 not taken.
✓ Branch 178 taken 2 times.
✗ Branch 180 not taken.
✓ Branch 181 taken 2 times.
✗ Branch 183 not taken.
✓ Branch 184 taken 2 times.
✗ Branch 186 not taken.
✓ Branch 187 taken 2 times.
✗ Branch 189 not taken.
✓ Branch 190 taken 2 times.
✗ Branch 192 not taken.
✓ Branch 193 taken 2 times.
✗ Branch 195 not taken.
✓ Branch 196 taken 2 times.
✗ Branch 198 not taken.
✓ Branch 199 taken 2 times.
✗ Branch 201 not taken.
✓ Branch 202 taken 2 times.
✗ Branch 204 not taken.
✓ Branch 205 taken 2 times.
✗ Branch 207 not taken.
✓ Branch 208 taken 2 times.
✗ Branch 210 not taken.
✓ Branch 211 taken 2 times.
✗ Branch 213 not taken.
✓ Branch 214 taken 2 times.
✗ Branch 216 not taken.
✓ Branch 217 taken 2 times.
✗ Branch 219 not taken.
✓ Branch 220 taken 2 times.
✗ Branch 222 not taken.
✓ Branch 223 taken 2 times.
|
10 | size(val,1),size(val,2),size(val,3),size(val,4),size(val,5)) :: output |
141 | |||
142 | !! fix rounding errors of division of small numbers | ||
143 | !! alt. could add an epsilon | ||
144 |
31/52✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✓ Branch 60 taken 2 times.
✓ Branch 61 taken 2 times.
✓ Branch 62 taken 2 times.
✓ Branch 63 taken 2 times.
✓ Branch 64 taken 2 times.
✓ Branch 65 taken 2 times.
✓ Branch 66 taken 2 times.
✓ Branch 67 taken 2 times.
✓ Branch 68 taken 2 times.
✓ Branch 69 taken 2 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 2 times.
|
12 | where(abs(val).gt.this%threshold) |
145 |
40/80✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 2 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 2 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 2 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 2 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 2 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 2 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 2 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 2 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 2 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 2 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 2 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 2 times.
|
2 | output = sign(1._real12, val) * this%scale |
146 | elsewhere | ||
147 |
95/190✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 2 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 2 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 2 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 2 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 2 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 2 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 2 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 2 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 2 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 2 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 2 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 2 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 2 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 2 times.
✗ Branch 123 not taken.
✓ Branch 124 taken 2 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 2 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 2 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 2 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 2 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 2 times.
✗ Branch 141 not taken.
✓ Branch 142 taken 2 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 2 times.
✗ Branch 147 not taken.
✓ Branch 148 taken 2 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 2 times.
✗ Branch 153 not taken.
✓ Branch 154 taken 2 times.
✗ Branch 156 not taken.
✓ Branch 157 taken 2 times.
✗ Branch 159 not taken.
✓ Branch 160 taken 2 times.
✗ Branch 162 not taken.
✓ Branch 163 taken 2 times.
✗ Branch 165 not taken.
✓ Branch 166 taken 2 times.
✗ Branch 168 not taken.
✓ Branch 169 taken 2 times.
✗ Branch 171 not taken.
✓ Branch 172 taken 2 times.
✗ Branch 174 not taken.
✓ Branch 175 taken 2 times.
✗ Branch 177 not taken.
✓ Branch 178 taken 2 times.
✗ Branch 180 not taken.
✓ Branch 181 taken 2 times.
✗ Branch 183 not taken.
✓ Branch 184 taken 2 times.
✗ Branch 186 not taken.
✓ Branch 187 taken 2 times.
✗ Branch 189 not taken.
✓ Branch 190 taken 2 times.
✗ Branch 192 not taken.
✓ Branch 193 taken 2 times.
✗ Branch 195 not taken.
✓ Branch 196 taken 2 times.
✗ Branch 198 not taken.
✓ Branch 199 taken 2 times.
✗ Branch 201 not taken.
✓ Branch 202 taken 2 times.
✗ Branch 204 not taken.
✓ Branch 205 taken 2 times.
✗ Branch 207 not taken.
✓ Branch 208 taken 2 times.
✗ Branch 210 not taken.
✓ Branch 211 taken 2 times.
✗ Branch 213 not taken.
✓ Branch 214 taken 2 times.
✗ Branch 216 not taken.
✓ Branch 217 taken 2 times.
✗ Branch 219 not taken.
✓ Branch 220 taken 2 times.
✗ Branch 222 not taken.
✓ Branch 223 taken 2 times.
✗ Branch 225 not taken.
✓ Branch 226 taken 2 times.
✗ Branch 228 not taken.
✓ Branch 229 taken 2 times.
✗ Branch 231 not taken.
✓ Branch 232 taken 2 times.
✗ Branch 234 not taken.
✓ Branch 235 taken 2 times.
✗ Branch 237 not taken.
✓ Branch 238 taken 2 times.
✗ Branch 240 not taken.
✓ Branch 241 taken 2 times.
✗ Branch 243 not taken.
✓ Branch 244 taken 2 times.
✗ Branch 246 not taken.
✓ Branch 247 taken 2 times.
✗ Branch 249 not taken.
✓ Branch 250 taken 2 times.
✗ Branch 252 not taken.
✓ Branch 253 taken 2 times.
✗ Branch 255 not taken.
✓ Branch 256 taken 2 times.
✗ Branch 258 not taken.
✓ Branch 259 taken 2 times.
✗ Branch 261 not taken.
✓ Branch 262 taken 2 times.
✗ Branch 264 not taken.
✓ Branch 265 taken 2 times.
✗ Branch 267 not taken.
✓ Branch 268 taken 2 times.
✗ Branch 270 not taken.
✓ Branch 271 taken 2 times.
✗ Branch 273 not taken.
✓ Branch 274 taken 2 times.
✗ Branch 276 not taken.
✓ Branch 277 taken 2 times.
✗ Branch 279 not taken.
✓ Branch 280 taken 2 times.
✗ Branch 282 not taken.
✓ Branch 283 taken 2 times.
|
2 | output = this%scale * (exp(val) - exp(-val))/(exp(val) + exp(-val)) |
148 | end where | ||
149 |
5/10✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
|
10 | end function tanh_activate_5d |
150 | !!!############################################################################# | ||
151 | |||
152 | |||
153 | !!!############################################################################# | ||
154 | !!! derivative of tanh function | ||
155 | !!! df/dx = 1 - f^2 | ||
156 | !!!############################################################################# | ||
157 |
2/4✓ Branch 0 taken 501 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 501 times.
✗ Branch 3 not taken.
|
501 | pure function tanh_differentiate_1d(this, val) result(output) |
158 | implicit none | ||
159 | class(tanh_type), intent(in) :: this | ||
160 | real(real12), dimension(:), intent(in) :: val | ||
161 |
3/6✗ Branch 0 not taken.
✓ Branch 1 taken 501 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 501 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 501 times.
|
501 | real(real12), dimension(size(val,dim=1)) :: output |
162 | |||
163 | ✗ | output = this%scale * & | |
164 |
12/22✗ Branch 0 not taken.
✓ Branch 1 taken 501 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 501 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 501 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 501 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 501 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 501 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 501 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 501 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 501 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 501 times.
✓ Branch 24 taken 501 times.
✓ Branch 25 taken 501 times.
|
1002 | (1._real12 - (this%activate_1d(val)/this%scale) ** 2._real12) |
165 | |||
166 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 501 times.
|
501 | end function tanh_differentiate_1d |
167 | !!!----------------------------------------------------------------------------- | ||
168 | !!!----------------------------------------------------------------------------- | ||
169 |
2/4✓ Branch 0 taken 501 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 501 times.
✗ Branch 3 not taken.
|
501 | pure function tanh_differentiate_2d(this, val) result(output) |
170 | implicit none | ||
171 | class(tanh_type), intent(in) :: this | ||
172 | real(real12), dimension(:,:), intent(in) :: val | ||
173 |
12/24✗ Branch 0 not taken.
✓ Branch 1 taken 501 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 501 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 501 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 501 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 501 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 501 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 501 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 501 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 501 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 501 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 501 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 501 times.
|
1002 | real(real12), dimension(size(val,1),size(val,2)) :: output |
174 | |||
175 | ✗ | output = this%scale * & | |
176 |
29/54✗ Branch 0 not taken.
✓ Branch 1 taken 501 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 501 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 501 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 501 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 501 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 501 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 501 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 501 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 501 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 501 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 501 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 501 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 501 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 501 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 501 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 501 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 501 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 501 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 501 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 501 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 501 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 501 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 501 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 501 times.
✓ Branch 54 taken 501 times.
✗ Branch 55 not taken.
✓ Branch 57 taken 501 times.
✓ Branch 58 taken 501 times.
✓ Branch 59 taken 2501 times.
✓ Branch 60 taken 501 times.
|
3503 | (1._real12 - (this%activate_2d(val)/this%scale) ** 2._real12) |
177 | |||
178 |
2/4✗ Branch 0 not taken.
✓ Branch 1 taken 501 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 501 times.
|
1002 | end function tanh_differentiate_2d |
179 | !!!----------------------------------------------------------------------------- | ||
180 | !!!----------------------------------------------------------------------------- | ||
181 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | pure function tanh_differentiate_3d(this, val) result(output) |
182 | implicit none | ||
183 | class(tanh_type), intent(in) :: this | ||
184 | real(real12), dimension(:,:,:), intent(in) :: val | ||
185 |
27/54✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 1 times.
|
3 | real(real12), dimension(size(val,1),size(val,2),size(val,3)) :: output |
186 | |||
187 | ✗ | output = this%scale * & | |
188 |
52/98✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 1 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 1 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 1 times.
✗ Branch 61 not taken.
✓ Branch 62 taken 1 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 1 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 1 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 1 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 84 taken 1 times.
✗ Branch 85 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 1 times.
✗ Branch 89 not taken.
✓ Branch 90 taken 1 times.
✗ Branch 91 not taken.
✓ Branch 92 taken 1 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 96 taken 1 times.
✗ Branch 97 not taken.
✓ Branch 98 taken 1 times.
✓ Branch 99 taken 1 times.
✗ Branch 100 not taken.
✓ Branch 102 taken 1 times.
✓ Branch 103 taken 1 times.
✓ Branch 104 taken 1 times.
✓ Branch 105 taken 1 times.
✓ Branch 106 taken 1 times.
✓ Branch 107 taken 1 times.
|
4 | (1._real12 - (this%activate_3d(val)/this%scale) ** 2._real12) |
189 | |||
190 |
3/6✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
3 | end function tanh_differentiate_3d |
191 | !!!----------------------------------------------------------------------------- | ||
192 | !!!----------------------------------------------------------------------------- | ||
193 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | pure function tanh_differentiate_4d(this, val) result(output) |
194 | implicit none | ||
195 | class(tanh_type), intent(in) :: this | ||
196 | real(real12), dimension(:,:,:,:), intent(in) :: val | ||
197 | real(real12), dimension(& | ||
198 |
48/96✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 1 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 1 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 1 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 1 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 1 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 1 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 1 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 1 times.
✗ Branch 123 not taken.
✓ Branch 124 taken 1 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 1 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 1 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 1 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 1 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 1 times.
✗ Branch 141 not taken.
✓ Branch 142 taken 1 times.
|
4 | size(val,1),size(val,2),size(val,3),size(val,4)) :: output |
199 | |||
200 | ✗ | output = this%scale * & | |
201 |
81/154✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 1 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 1 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 1 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 1 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 1 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 1 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 1 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 1 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 1 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 1 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 1 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 1 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 1 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 1 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 1 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 1 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 1 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 1 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 1 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 1 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 1 times.
✗ Branch 128 not taken.
✓ Branch 129 taken 1 times.
✗ Branch 130 not taken.
✓ Branch 131 taken 1 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 1 times.
✗ Branch 134 not taken.
✓ Branch 135 taken 1 times.
✗ Branch 136 not taken.
✓ Branch 137 taken 1 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 1 times.
✗ Branch 140 not taken.
✓ Branch 141 taken 1 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 1 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 1 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 1 times.
✗ Branch 148 not taken.
✓ Branch 149 taken 1 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 1 times.
✗ Branch 152 not taken.
✓ Branch 153 taken 1 times.
✗ Branch 154 not taken.
✓ Branch 155 taken 1 times.
✓ Branch 156 taken 1 times.
✗ Branch 157 not taken.
✓ Branch 159 taken 1 times.
✓ Branch 160 taken 1 times.
✓ Branch 161 taken 1 times.
✓ Branch 162 taken 1 times.
✓ Branch 163 taken 1 times.
✓ Branch 164 taken 1 times.
✓ Branch 165 taken 1 times.
✓ Branch 166 taken 1 times.
|
5 | (1._real12 - (this%activate_4d(val)/this%scale) ** 2._real12) |
202 | |||
203 |
4/8✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
|
4 | end function tanh_differentiate_4d |
204 | !!!----------------------------------------------------------------------------- | ||
205 | !!!----------------------------------------------------------------------------- | ||
206 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | pure function tanh_differentiate_5d(this, val) result(output) |
207 | implicit none | ||
208 | class(tanh_type), intent(in) :: this | ||
209 | real(real12), dimension(:,:,:,:,:), intent(in) :: val | ||
210 | real(real12), dimension(& | ||
211 |
75/150✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 1 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 1 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 1 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 1 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 1 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 1 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 1 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 1 times.
✗ Branch 123 not taken.
✓ Branch 124 taken 1 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 1 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 1 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 1 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 1 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 1 times.
✗ Branch 141 not taken.
✓ Branch 142 taken 1 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 1 times.
✗ Branch 147 not taken.
✓ Branch 148 taken 1 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 1 times.
✗ Branch 153 not taken.
✓ Branch 154 taken 1 times.
✗ Branch 156 not taken.
✓ Branch 157 taken 1 times.
✗ Branch 159 not taken.
✓ Branch 160 taken 1 times.
✗ Branch 162 not taken.
✓ Branch 163 taken 1 times.
✗ Branch 165 not taken.
✓ Branch 166 taken 1 times.
✗ Branch 168 not taken.
✓ Branch 169 taken 1 times.
✗ Branch 171 not taken.
✓ Branch 172 taken 1 times.
✗ Branch 174 not taken.
✓ Branch 175 taken 1 times.
✗ Branch 177 not taken.
✓ Branch 178 taken 1 times.
✗ Branch 180 not taken.
✓ Branch 181 taken 1 times.
✗ Branch 183 not taken.
✓ Branch 184 taken 1 times.
✗ Branch 186 not taken.
✓ Branch 187 taken 1 times.
✗ Branch 189 not taken.
✓ Branch 190 taken 1 times.
✗ Branch 192 not taken.
✓ Branch 193 taken 1 times.
✗ Branch 195 not taken.
✓ Branch 196 taken 1 times.
✗ Branch 198 not taken.
✓ Branch 199 taken 1 times.
✗ Branch 201 not taken.
✓ Branch 202 taken 1 times.
✗ Branch 204 not taken.
✓ Branch 205 taken 1 times.
✗ Branch 207 not taken.
✓ Branch 208 taken 1 times.
✗ Branch 210 not taken.
✓ Branch 211 taken 1 times.
✗ Branch 213 not taken.
✓ Branch 214 taken 1 times.
✗ Branch 216 not taken.
✓ Branch 217 taken 1 times.
✗ Branch 219 not taken.
✓ Branch 220 taken 1 times.
✗ Branch 222 not taken.
✓ Branch 223 taken 1 times.
|
5 | size(val,1),size(val,2),size(val,3),size(val,4),size(val,5)) :: output |
212 | |||
213 | ✗ | output = this%scale * & | |
214 |
116/222✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 1 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 1 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 84 taken 1 times.
✗ Branch 85 not taken.
✓ Branch 86 taken 1 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 1 times.
✗ Branch 89 not taken.
✓ Branch 90 taken 1 times.
✗ Branch 91 not taken.
✓ Branch 92 taken 1 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 96 taken 1 times.
✗ Branch 97 not taken.
✓ Branch 98 taken 1 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
✓ Branch 102 taken 1 times.
✗ Branch 103 not taken.
✓ Branch 104 taken 1 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 1 times.
✗ Branch 107 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✓ Branch 110 taken 1 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 1 times.
✗ Branch 113 not taken.
✓ Branch 114 taken 1 times.
✗ Branch 115 not taken.
✓ Branch 116 taken 1 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 1 times.
✗ Branch 119 not taken.
✓ Branch 120 taken 1 times.
✗ Branch 121 not taken.
✓ Branch 122 taken 1 times.
✗ Branch 123 not taken.
✓ Branch 124 taken 1 times.
✗ Branch 125 not taken.
✓ Branch 126 taken 1 times.
✗ Branch 127 not taken.
✓ Branch 128 taken 1 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 1 times.
✗ Branch 131 not taken.
✓ Branch 132 taken 1 times.
✗ Branch 133 not taken.
✓ Branch 134 taken 1 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 1 times.
✗ Branch 137 not taken.
✓ Branch 138 taken 1 times.
✗ Branch 139 not taken.
✓ Branch 140 taken 1 times.
✗ Branch 141 not taken.
✓ Branch 142 taken 1 times.
✗ Branch 143 not taken.
✓ Branch 144 taken 1 times.
✗ Branch 145 not taken.
✓ Branch 146 taken 1 times.
✗ Branch 147 not taken.
✓ Branch 148 taken 1 times.
✗ Branch 149 not taken.
✓ Branch 150 taken 1 times.
✗ Branch 151 not taken.
✓ Branch 152 taken 1 times.
✗ Branch 153 not taken.
✓ Branch 154 taken 1 times.
✗ Branch 155 not taken.
✓ Branch 156 taken 1 times.
✗ Branch 157 not taken.
✓ Branch 158 taken 1 times.
✗ Branch 159 not taken.
✓ Branch 160 taken 1 times.
✗ Branch 161 not taken.
✓ Branch 162 taken 1 times.
✗ Branch 163 not taken.
✓ Branch 164 taken 1 times.
✗ Branch 165 not taken.
✓ Branch 166 taken 1 times.
✗ Branch 167 not taken.
✓ Branch 168 taken 1 times.
✗ Branch 169 not taken.
✓ Branch 170 taken 1 times.
✗ Branch 171 not taken.
✓ Branch 172 taken 1 times.
✗ Branch 173 not taken.
✓ Branch 174 taken 1 times.
✗ Branch 175 not taken.
✓ Branch 176 taken 1 times.
✗ Branch 177 not taken.
✓ Branch 178 taken 1 times.
✗ Branch 179 not taken.
✓ Branch 180 taken 1 times.
✗ Branch 181 not taken.
✓ Branch 182 taken 1 times.
✗ Branch 183 not taken.
✓ Branch 184 taken 1 times.
✗ Branch 185 not taken.
✓ Branch 186 taken 1 times.
✗ Branch 187 not taken.
✓ Branch 188 taken 1 times.
✗ Branch 189 not taken.
✓ Branch 190 taken 1 times.
✗ Branch 191 not taken.
✓ Branch 192 taken 1 times.
✗ Branch 193 not taken.
✓ Branch 194 taken 1 times.
✗ Branch 195 not taken.
✓ Branch 196 taken 1 times.
✗ Branch 197 not taken.
✓ Branch 198 taken 1 times.
✗ Branch 199 not taken.
✓ Branch 200 taken 1 times.
✗ Branch 201 not taken.
✓ Branch 202 taken 1 times.
✗ Branch 203 not taken.
✓ Branch 204 taken 1 times.
✗ Branch 205 not taken.
✓ Branch 206 taken 1 times.
✗ Branch 207 not taken.
✓ Branch 208 taken 1 times.
✗ Branch 209 not taken.
✓ Branch 210 taken 1 times.
✗ Branch 211 not taken.
✓ Branch 212 taken 1 times.
✗ Branch 213 not taken.
✓ Branch 214 taken 1 times.
✗ Branch 215 not taken.
✓ Branch 216 taken 1 times.
✗ Branch 217 not taken.
✓ Branch 218 taken 1 times.
✗ Branch 219 not taken.
✓ Branch 220 taken 1 times.
✗ Branch 221 not taken.
✓ Branch 222 taken 1 times.
✗ Branch 223 not taken.
✓ Branch 224 taken 1 times.
✓ Branch 225 taken 1 times.
✗ Branch 226 not taken.
✓ Branch 228 taken 1 times.
✓ Branch 229 taken 1 times.
✓ Branch 230 taken 1 times.
✓ Branch 231 taken 1 times.
✓ Branch 232 taken 1 times.
✓ Branch 233 taken 1 times.
✓ Branch 234 taken 1 times.
✓ Branch 235 taken 1 times.
✓ Branch 236 taken 1 times.
✓ Branch 237 taken 1 times.
|
6 | (1._real12 - (this%activate_5d(val)/this%scale) ** 2._real12) |
215 | |||
216 |
5/10✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
|
5 | end function tanh_differentiate_5d |
217 | !!!############################################################################# | ||
218 | |||
219 | 21 | end module activation_tanh | |
220 |