@@ -24,143 +24,147 @@ $$$
24
24
25
25
for the vector-to-vector case.
26
26
27
- The running times are averaged over half a million calls to each operation, on a PC with an Intel Core i7-4785T 2.2 GHz CPU and 16 GB RAM, running Windows 10 Build 10240 and .NET Framework 4.6.
27
+ The running times are averaged over 10000 calls to each operation, with vector size 100, on a PC with an Intel Core i7-4785T 2.2 GHz CPU and 16 GB RAM, running Windows 10 Build 10240 and .NET Framework 4.6.
28
+
29
+ Please note that the numbers for multivariate functions are highly dependent on the selected size of the input vector (i.e., independent variables). The [Helmholtz Energy Function](examples-helmholtzenergyfunction.html) page demonstrates how the overhead factors scale as a function of the number of independent variables.
28
30
29
31
<style type="text/css">
30
32
.tg {border-collapse:collapse;border-spacing:0;}
31
- .tg td{font-family:Arial, sans-serif;font- size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
32
- .tg th{font-family:Arial, sans-serif;font- size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
33
- .tg .tg-gik2 {font-size:10px;font-family:serif !important;; background-color:#ecf4ff;color:#000000;text-align:center}
34
- .tg .tg-ieqq {font-size:10px;font-family:serif !important;; background-color:#e4ffb3 ;text-align:center}
35
- .tg .tg-habg {font-weight:bold;font-size:10px;font-family:serif !important; }
36
- .tg .tg-g4y3 {font-size:10px;font-family:serif !important; }
37
- .tg .tg-x05y {font-size:10px;font-family:serif !important;; background-color:#ffffc7;text-align:center}
38
- .tg .tg-8xte {font-size:10px;font-family:serif !important;; background-color:#ecf4ff ;text-align:center}
33
+ .tg td{font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
34
+ .tg th{font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
35
+ .tg .tg-mk1h {font-size:10px;background-color:#ecf4ff;color:#000000;text-align:center;vertical-align:top }
36
+ .tg .tg-xswp {font-size:10px;background-color:#ecf4ff ;text-align:center;vertical-align:top }
37
+ .tg .tg-klyj {font-weight:bold;font-size:10px;vertical-align:top }
38
+ .tg .tg-5sg4 {font-size:10px;vertical-align:top }
39
+ .tg .tg-9t4f {font-size:10px;background-color:#ffffc7;text-align:center;vertical-align:top }
40
+ .tg .tg-h8aj {font-size:10px;background-color:#e4ffb3 ;text-align:center;vertical-align:top }
39
41
</style>
40
42
<table class="tg">
41
43
<tr>
42
- <th class="tg-g4y3 "></th>
43
- <th class="tg-x05y ">diff </th>
44
- <th class="tg-x05y ">diff2 </th>
45
- <th class="tg-x05y ">diffn </th>
46
- <th class="tg-ieqq ">grad </th>
47
- <th class="tg-ieqq ">gradv</th>
48
- <th class="tg-ieqq ">hessian </th>
49
- <th class="tg-ieqq ">hessianv</th>
50
- <th class="tg-ieqq ">gradhessian </th>
51
- <th class="tg-ieqq ">gradhessianv</th>
52
- <th class="tg-ieqq ">laplacian </th>
53
- <th class="tg-gik2 ">jacobian </th>
54
- <th class="tg-8xte ">jacobianv</th>
55
- <th class="tg-8xte ">jacobianT</th>
56
- <th class="tg-8xte ">jacobianTv</th>
44
+ <th class="tg-5sg4 "></th>
45
+ <th class="tg-9t4f ">diff </th>
46
+ <th class="tg-9t4f ">diff2 </th>
47
+ <th class="tg-9t4f ">diffn </th>
48
+ <th class="tg-h8aj ">grad </th>
49
+ <th class="tg-h8aj ">gradv</th>
50
+ <th class="tg-h8aj ">hessian </th>
51
+ <th class="tg-h8aj ">hessianv</th>
52
+ <th class="tg-h8aj ">gradhessian </th>
53
+ <th class="tg-h8aj ">gradhessianv</th>
54
+ <th class="tg-h8aj ">laplacian </th>
55
+ <th class="tg-mk1h ">jacobian </th>
56
+ <th class="tg-xswp ">jacobianv</th>
57
+ <th class="tg-xswp ">jacobianT</th>
58
+ <th class="tg-xswp ">jacobianTv</th>
57
59
</tr>
58
60
<tr>
59
- <td class="tg-habg ">AD</td>
60
- <td class="tg-x05y ">3.83 </td>
61
- <td class="tg-x05y ">9.71 </td>
62
- <td class="tg-x05y ">9.33 </td>
63
- <td class="tg-ieqq">12.23 </td>
64
- <td class="tg-ieqq ">2.19 </td>
65
- <td class="tg-ieqq">63.84 </td>
66
- <td class="tg-ieqq">7.33 </td>
67
- <td class="tg-ieqq">63.15 </td>
68
- <td class="tg-ieqq">7.11 </td>
69
- <td class="tg-ieqq">64.47 </td>
70
- <td class="tg-8xte">10.97 </td>
71
- <td class="tg-8xte ">2.47 </td>
72
- <td class="tg-8xte">11.97 </td>
73
- <td class="tg-8xte">3.17 </td>
61
+ <td class="tg-klyj ">AD</td>
9E88
62
+ <td class="tg-9t4f ">3.33 </td>
63
+ <td class="tg-9t4f ">9.30 </td>
64
+ <td class="tg-9t4f ">9.21 </td>
65
+ <td class="tg-h8aj">4.79 </td>
66
+ <td class="tg-h8aj ">2.11 </td>
67
+ <td class="tg-h8aj">810.22 </td>
68
+ <td class="tg-h8aj">9.62 </td>
69
+ <td class="tg-h8aj">823.86 </td>
70
+ <td class="tg-h8aj">9.55 </td>
71
+ <td class="tg-h8aj">814.19 </td>
72
+ <td class="tg-xswp">15.10 </td>
73
+ <td class="tg-xswp ">2.55 </td>
74
+ <td class="tg-xswp">15.41 </td>
75
+ <td class="tg-xswp">4.53 </td>
74
76
</tr>
75
77
<tr>
76
- <td class="tg-habg ">Numerical</td>
77
- <td class="tg-x05y">3.24 </td>
78
- <td class="tg-x05y">3 .78</td>
79
- <td class="tg-x05y "></td>
80
- <td class="tg-ieqq">51.21 </td>
81
- <td class="tg-ieqq">10.30 </td>
82
- <td class="tg-ieqq">528.24 </td>
83
- <td class="tg-ieqq">96.71 </td>
84
- <td class="tg-ieqq">518.38 </td>
85
- <td class="tg-ieqq">108.08 </td>
86
- <td class="tg-ieqq">581.75 </td>
87
- <td class="tg-gik2">38.31 </td>
88
- <td class="tg-8xte">3.57 </td>
89
- <td class="tg-8xte">20.26 </td>
90
- <td class="tg-8xte "></td>
78
+ <td class="tg-klyj ">Numerical</td>
79
+ <td class="tg-9t4f">1.93 </td>
80
+ <td class="tg-9t4f">2 .78</td>
81
+ <td class="tg-9t4f "></td>
82
+ <td class="tg-h8aj">161.36 </td>
83
+ <td class="tg-h8aj">3.49 </td>
84
+ <td class="tg-h8aj">16.75k </td>
85
+ <td class="tg-h8aj">322.88 </td>
86
+ <td class="tg-h8aj">16.82k </td>
87
+ <td class="tg-h8aj">326.97 </td>
88
+ <td class="tg-h8aj">16.75k </td>
89
+ <td class="tg-mk1h">112.54 </td>
90
+ <td class="tg-xswp">2.21 </td>
91
+ <td class="tg-xswp">111.38 </td>
92
+ <td class="tg-xswp "></td>
91
93
</tr>
92
94
<tr style="visibility:hidden">
93
- <td class="tg-g4y3 "></td>
94
- <td class="tg-x05y "></td>
95
- <td class="tg-x05y "></td>
96
- <td class="tg-x05y "></td>
97
- <td class="tg-ieqq "></td>
98
- <td class="tg-ieqq "></td>
99
- <td class="tg-ieqq "></td>
100
- <td class="tg-ieqq "></td>
101
- <td class="tg-ieqq "></td>
102
- <td class="tg-ieqq "></td>
103
- <td class="tg-ieqq "></td>
104
- <td class="tg-8xte "></td>
105
- <td class="tg-8xte "></td>
106
- <td class="tg-8xte "></td>
107
- <td class="tg-8xte "></td>
95
+ <td class="tg-5sg4 "></td>
96
+ <td class="tg-9t4f "></td>
97
+ <td class="tg-9t4f "></td>
98
+ <td class="tg-9t4f "></td>
99
+ <td class="tg-h8aj "></td>
100
+ <td class="tg-h8aj "></td>
101
+ <td class="tg-h8aj "></td>
102
+ <td class="tg-h8aj "></td>
103
+ <td class="tg-h8aj "></td>
104
+ <td class="tg-h8aj "></td>
105
+ <td class="tg-h8aj "></td>
106
+ <td class="tg-xswp "></td>
107
+ <td class="tg-xswp "></td>
108
+ <td class="tg-xswp "></td>
109
+ <td class="tg-xswp "></td>
108
110
</tr>
109
111
<tr>
110
- <td class="tg-g4y3 "></td>
111
- <td class="tg-x05y ">diff'</td>
112
- <td class="tg-x05y ">diff2'</td>
113
- <td class="tg-x05y ">diffn'</td>
114
- <td class="tg-ieqq ">grad'</td>
115
- <td class="tg-ieqq ">gradv'</td>
116
- <td class="tg-ieqq ">hessian'</td>
117
- <td class="tg-ieqq ">hessianv'</td>
118
- <td class="tg-ieqq ">gradhessian'</td>
119
- <td class="tg-ieqq ">gradhessianv'</td>
120
- <td class="tg-ieqq ">laplacian'</td>
121
- <td class="tg-8xte ">jacobian'</td>
122
- <td class="tg-8xte ">jacobianv'</td>
123
- <td class="tg-8xte ">jacobianT'</td>
124
- <td class="tg-8xte ">jacobianTv'</td>
112
+ <td class="tg-5sg4 "></td>
113
+ <td class="tg-9t4f ">diff'</td>
114
+ <td class="tg-9t4f ">diff2'</td>
115
+ <td class="tg-9t4f ">diffn'</td>
116
+ <td class="tg-h8aj ">grad'</td>
117
+ <td class="tg-h8aj ">gradv'</td>
118
+ <td class="tg-h8aj ">hessian'</td>
119
+ <td class="tg-h8aj ">hessianv'</td>
120
+ <td class="tg-h8aj ">gradhessian'</td>
121
+ <td class="tg-h8aj ">gradhessianv'</td>
122
+ <td class="tg-h8aj ">laplacian'</td>
123
+ <td class="tg-xswp ">jacobian'</td>
124
+ <td class="tg-xswp ">jacobianv'</td>
125
+ <td class="tg-xswp ">jacobianT'</td>
126
+ <td class="tg-xswp ">jacobianTv'</td>
125
127
</tr>
126
128
<tr>
127
- <td class="tg-habg ">AD</td>
128
- <td class="tg-x05y ">3.44 </td>
129
- <td class="tg-x05y ">12.56 </td>
130
- <td class="tg-x05y ">10.12</td>
131
- <td class="tg-ieqq">3.36 </td>
132
- <td class="tg-ieqq ">2.22 </td>
133
- <td class="tg-ieqq">64.97 </td>
134
- <td class="tg-ieqq">6.79 </td>
135
- <td class="tg-ieqq">63 .22</td>
136
- <td class="tg-ieqq">7.33 </td>
137
- <td class="tg-ieqq">64.41 </td>
138
- <td class="tg-8xte">10.96 </td>
139
- <td class="tg-8xte ">2.39 </td>
140
- <td class="tg-8xte">11.78 </td>
141
- <td class="tg-8xte">3.14 </td>
129
+ <td class="tg-klyj ">AD</td>
130
+ <td class="tg-9t4f ">3.35 </td>
131
+ <td class="tg-9t4f ">12.30 </td>
132
+ <td class="tg-9t4f ">10.12</td>
133
+ <td class="tg-h8aj">4.70 </td>
134
+ <td class="tg-h8aj ">2.05 </td>
135
+ <td class="tg-h8aj">821.31 </td>
136
+ <td class="tg-h8aj">9.56 </td>
137
+ <td class="tg-h8aj">808 .22</td>
138
+ <td class="tg-h8aj">9.66 </td>
139
+ <td class="tg-h8aj">810.23 </td>
140
+ <td class="tg-xswp">15.05 </td>
141
+ <td class="tg-xswp ">2.51 </td>
142
+ <td class="tg-xswp">15.26 </td>
143
+ <td class="tg-xswp">4.50 </td>
142
144
</tr>
143
145
<tr>
144
- <td class="tg-habg ">Numerical</td>
145
- <td class="tg-x05y">4.09 </td>
146
- <td class="tg-x05y">5.01 </td>
147
- <td class="tg-x05y "></td>
148
- <td class="tg-ieqq">45.13 </td>
149
- <td class="tg-ieqq">12.11 </td>
150
- <td class="tg-ieqq">521.20 </td>
151
- <td class="tg-ieqq">96.19 </td>
152
- <td class="tg-ieqq">504.64 </td>
153
- <td class="tg-ieqq">107.55 </td>
154
- <td class="tg-ieqq">579.96 </td>
155
- <td class="tg-8xte">38.17 </td>
156
- <td class="tg-8xte">4.60 </td>
157
- <td class="tg-8xte">20.08 </td>
158
- <td class="tg-8xte "></td>
146
+ <td class="tg-klyj ">Numerical</td>
147
+ <td class="tg-9t4f">2.82 </td>
148
+ <td class="tg-9t4f">3.71 </td>
149
+ <td class="tg-9t4f "></td>
150
+ <td class="tg-h8aj">160.56 </td>
151
+ <td class="tg-h8aj">4.66 </td>
152
+ <td class="tg-h8aj">16.78k </td>
153
+ <td class="tg-h8aj">323.03 </td>
154
+ <td class="tg-h8aj">16.80k </td>
155
+ <td class="tg-h8aj">327.68 </td>
156
+ <td class="tg-h8aj">16.78k </td>
157
+ <td class="tg-xswp">111.62 </td>
158
+ <td class="tg-xswp">3.20 </td>
159
+ <td class="tg-xswp">112.43 </td>
160
+ <td class="tg-xswp "></td>
159
161
</tr>
160
162
</table>
161
163
162
164
<br>
163
165
166
+ The benchmarks given in the above table can be replicated using the benchmarking tool: <pre>dsbench -vsize 100 -r 10000</pre>
167
+
164
168
Running Benchmarks on Your Machine
165
169
----------------------------------
166
170
@@ -171,5 +175,8 @@ If you would like to run the benchmarks on your own machine, you can use the **d
171
175
<img src="img/benchmarks.png" alt="Chart" style="width:569px"/>
172
176
</div>
173
177
</div>
178
+
179
+ <br>
180
+
174
181
*)
175
182
0 commit comments