Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
main.cpp
Go to the documentation of this file.
1
// Copyright (c) 2014-2019, The Monero Project
2
//
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without modification, are
6
// permitted provided that the following conditions are met:
7
//
8
// 1. Redistributions of source code must retain the above copyright notice, this list of
9
// conditions and the following disclaimer.
10
//
11
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
12
// of conditions and the following disclaimer in the documentation and/or other
13
// materials provided with the distribution.
14
//
15
// 3. Neither the name of the copyright holder nor the names of its contributors may be
16
// used to endorse or promote products derived from this software without specific
17
// prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
27
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
//
29
// Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
30
31
#include <boost/regex.hpp>
32
33
#include "
common/util.h
"
34
#include "
common/command_line.h
"
35
#include "
performance_tests.h
"
36
#include "
performance_utils.h
"
37
38
// tests
39
#include "
construct_tx.h
"
40
#include "
check_tx_signature.h
"
41
#include "
check_hash.h
"
42
#include "
cn_slow_hash.h
"
43
#include "
derive_public_key.h
"
44
#include "
derive_secret_key.h
"
45
#include "
ge_frombytes_vartime.h
"
46
#include "
ge_tobytes.h
"
47
#include "
generate_key_derivation.h
"
48
#include "
generate_key_image.h
"
49
#include "
generate_key_image_helper.h
"
50
#include "
generate_keypair.h
"
51
#include "
signature.h
"
52
#include "
is_out_to_acc.h
"
53
#include "
subaddress_expand.h
"
54
#include "
sc_reduce32.h
"
55
#include "
sc_check.h
"
56
#include "
cn_fast_hash.h
"
57
#include "
rct_mlsag.h
"
58
#include "
equality.h
"
59
#include "
range_proof.h
"
60
#include "
rct_mlsag.h
"
61
#include "
bulletproof.h
"
62
#include "
crypto_ops.h
"
63
#include "
multiexp.h
"
64
65
namespace
po = boost::program_options;
66
67
int
main
(
int
argc,
char
** argv)
68
{
69
TRY_ENTRY
();
70
tools::on_startup
();
71
set_process_affinity
(1);
72
set_thread_high_priority
();
73
74
mlog_configure
(
mlog_get_default_log_path
(
"performance_tests.log"
),
true
);
75
76
po::options_description desc_options(
"Command line options"
);
77
const
command_line::arg_descriptor<std::string>
arg_filter = {
"filter"
,
"Regular expression filter for which tests to run"
};
78
const
command_line::arg_descriptor<bool>
arg_verbose = {
"verbose"
,
"Verbose output"
,
false
};
79
const
command_line::arg_descriptor<bool>
arg_stats = {
"stats"
,
"Including statistics (min/median)"
,
false
};
80
const
command_line::arg_descriptor<unsigned>
arg_loop_multiplier = {
"loop-multiplier"
,
"Run for that many times more loops"
, 1 };
81
const
command_line::arg_descriptor<std::string>
arg_timings_database = {
"timings-database"
,
"Keep timings history in a file"
};
82
command_line::add_arg
(desc_options, arg_filter);
83
command_line::add_arg
(desc_options, arg_verbose);
84
command_line::add_arg
(desc_options, arg_stats);
85
command_line::add_arg
(desc_options, arg_loop_multiplier);
86
command_line::add_arg
(desc_options, arg_timings_database);
87
88
po::variables_map vm;
89
bool
r =
command_line::handle_error_helper
(desc_options, [&]()
90
{
91
po::store(po::parse_command_line(argc, argv, desc_options), vm);
92
po::notify(vm);
93
return
true
;
94
});
95
if
(!r)
96
return
1;
97
98
const
std::string filter =
tools::glob_to_regex
(
command_line::get_arg
(vm, arg_filter));
99
const
std::string timings_database =
command_line::get_arg
(vm, arg_timings_database);
100
Params
p;
101
if
(!timings_database.empty())
102
p.
td
=
TimingsDatabase
(timings_database);
103
p.
verbose
=
command_line::get_arg
(vm, arg_verbose);
104
p.
stats
=
command_line::get_arg
(vm, arg_stats);
105
p.
loop_multiplier
=
command_line::get_arg
(vm, arg_loop_multiplier);
106
107
performance_timer
timer;
108
timer.
start
();
109
110
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 1, 1,
false
);
111
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 1, 2,
false
);
112
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 1, 10,
false
);
113
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 1, 100,
false
);
114
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 1, 1000,
false
);
115
116
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 2, 1,
false
);
117
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 2, 2,
false
);
118
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 2, 10,
false
);
119
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 2, 100,
false
);
120
121
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 10, 1,
false
);
122
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 10, 2,
false
);
123
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 10, 10,
false
);
124
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 10, 100,
false
);
125
126
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 100, 1,
false
);
127
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 100, 2,
false
);
128
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 100, 10,
false
);
129
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 100, 100,
false
);
130
131
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 2, 1,
true
);
132
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 2, 2,
true
);
133
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 2, 10,
true
);
134
135
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 10, 1,
true
);
136
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 10, 2,
true
);
137
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 10, 10,
true
);
138
139
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 100, 1,
true
);
140
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 100, 2,
true
);
141
TEST_PERFORMANCE3
(filter, p,
test_construct_tx
, 100, 10,
true
);
142
143
TEST_PERFORMANCE5
(filter, p,
test_construct_tx
, 2, 1,
true
,
rct::RangeProofPaddedBulletproof
, 2);
144
TEST_PERFORMANCE5
(filter, p,
test_construct_tx
, 2, 2,
true
,
rct::RangeProofPaddedBulletproof
, 2);
145
TEST_PERFORMANCE5
(filter, p,
test_construct_tx
, 2, 10,
true
,
rct::RangeProofPaddedBulletproof
, 2);
146
147
TEST_PERFORMANCE5
(filter, p,
test_construct_tx
, 10, 1,
true
,
rct::RangeProofPaddedBulletproof
, 2);
148
TEST_PERFORMANCE5
(filter, p,
test_construct_tx
, 10, 2,
true
,
rct::RangeProofPaddedBulletproof
, 2);
149
TEST_PERFORMANCE5
(filter, p,
test_construct_tx
, 10, 10,
true
,
rct::RangeProofPaddedBulletproof
, 2);
150
151
TEST_PERFORMANCE5
(filter, p,
test_construct_tx
, 100, 1,
true
,
rct::RangeProofPaddedBulletproof
, 2);
152
TEST_PERFORMANCE5
(filter, p,
test_construct_tx
, 100, 2,
true
,
rct::RangeProofPaddedBulletproof
, 2);
153
TEST_PERFORMANCE5
(filter, p,
test_construct_tx
, 100, 10,
true
,
rct::RangeProofPaddedBulletproof
, 2);
154
155
TEST_PERFORMANCE3
(filter, p,
test_check_tx_signature
, 1, 2,
false
);
156
TEST_PERFORMANCE3
(filter, p,
test_check_tx_signature
, 2, 2,
false
);
157
TEST_PERFORMANCE3
(filter, p,
test_check_tx_signature
, 10, 2,
false
);
158
TEST_PERFORMANCE3
(filter, p,
test_check_tx_signature
, 100, 2,
false
);
159
TEST_PERFORMANCE3
(filter, p,
test_check_tx_signature
, 2, 10,
false
);
160
161
TEST_PERFORMANCE4
(filter, p,
test_check_tx_signature
, 2, 2,
true
,
rct::RangeProofBorromean
);
162
TEST_PERFORMANCE4
(filter, p,
test_check_tx_signature
, 10, 2,
true
,
rct::RangeProofBorromean
);
163
TEST_PERFORMANCE4
(filter, p,
test_check_tx_signature
, 100, 2,
true
,
rct::RangeProofBorromean
);
164
TEST_PERFORMANCE4
(filter, p,
test_check_tx_signature
, 2, 10,
true
,
rct::RangeProofBorromean
);
165
166
TEST_PERFORMANCE5
(filter, p,
test_check_tx_signature
, 2, 2,
true
,
rct::RangeProofPaddedBulletproof
, 2);
167
TEST_PERFORMANCE5
(filter, p,
test_check_tx_signature
, 2, 2,
true
,
rct::RangeProofMultiOutputBulletproof
, 2);
168
TEST_PERFORMANCE5
(filter, p,
test_check_tx_signature
, 10, 2,
true
,
rct::RangeProofPaddedBulletproof
, 2);
169
TEST_PERFORMANCE5
(filter, p,
test_check_tx_signature
, 10, 2,
true
,
rct::RangeProofMultiOutputBulletproof
, 2);
170
TEST_PERFORMANCE5
(filter, p,
test_check_tx_signature
, 100, 2,
true
,
rct::RangeProofPaddedBulletproof
, 2);
171
TEST_PERFORMANCE5
(filter, p,
test_check_tx_signature
, 100, 2,
true
,
rct::RangeProofMultiOutputBulletproof
, 2);
172
TEST_PERFORMANCE5
(filter, p,
test_check_tx_signature
, 2, 10,
true
,
rct::RangeProofPaddedBulletproof
, 2);
173
TEST_PERFORMANCE5
(filter, p,
test_check_tx_signature
, 2, 10,
true
,
rct::RangeProofMultiOutputBulletproof
, 2);
174
175
TEST_PERFORMANCE3
(filter, p,
test_check_tx_signature_aggregated_bulletproofs
, 2, 2, 64);
176
TEST_PERFORMANCE3
(filter, p,
test_check_tx_signature_aggregated_bulletproofs
, 10, 2, 64);
177
TEST_PERFORMANCE3
(filter, p,
test_check_tx_signature_aggregated_bulletproofs
, 100, 2, 64);
178
TEST_PERFORMANCE3
(filter, p,
test_check_tx_signature_aggregated_bulletproofs
, 2, 10, 64);
179
180
TEST_PERFORMANCE4
(filter, p,
test_check_tx_signature_aggregated_bulletproofs
, 2, 2, 62, 4);
181
TEST_PERFORMANCE4
(filter, p,
test_check_tx_signature_aggregated_bulletproofs
, 10, 2, 62, 4);
182
TEST_PERFORMANCE4
(filter, p,
test_check_tx_signature_aggregated_bulletproofs
, 2, 2, 56, 16);
183
TEST_PERFORMANCE4
(filter, p,
test_check_tx_signature_aggregated_bulletproofs
, 10, 2, 56, 16);
184
185
TEST_PERFORMANCE4
(filter, p,
test_check_hash
, 0, 1, 0, 1);
186
TEST_PERFORMANCE4
(filter, p,
test_check_hash
, 0, 0xffffffffffffffff, 0, 0xffffffffffffffff);
187
TEST_PERFORMANCE4
(filter, p,
test_check_hash
, 0, 0xffffffffffffffff, 0, 1);
188
TEST_PERFORMANCE4
(filter, p,
test_check_hash
, 1, 0, 1, 0);
189
TEST_PERFORMANCE4
(filter, p,
test_check_hash
, 1, 0, 0, 1);
190
TEST_PERFORMANCE4
(filter, p,
test_check_hash
, 0xffffffffffffffff, 0xffffffffffffffff, 0, 1);
191
TEST_PERFORMANCE4
(filter, p,
test_check_hash
, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff);
192
193
TEST_PERFORMANCE0
(filter, p,
test_is_out_to_acc
);
194
TEST_PERFORMANCE0
(filter, p,
test_is_out_to_acc_precomp
);
195
TEST_PERFORMANCE0
(filter, p,
test_generate_key_image_helper
);
196
TEST_PERFORMANCE0
(filter, p,
test_generate_key_derivation
);
197
TEST_PERFORMANCE0
(filter, p,
test_generate_key_image
);
198
TEST_PERFORMANCE0
(filter, p,
test_derive_public_key
);
199
TEST_PERFORMANCE0
(filter, p,
test_derive_secret_key
);
200
TEST_PERFORMANCE0
(filter, p,
test_ge_frombytes_vartime
);
201
TEST_PERFORMANCE0
(filter, p,
test_ge_tobytes
);
202
TEST_PERFORMANCE0
(filter, p,
test_generate_keypair
);
203
TEST_PERFORMANCE0
(filter, p,
test_sc_reduce32
);
204
TEST_PERFORMANCE0
(filter, p,
test_sc_check
);
205
TEST_PERFORMANCE1
(filter, p,
test_signature
,
false
);
206
TEST_PERFORMANCE1
(filter, p,
test_signature
,
true
);
207
208
TEST_PERFORMANCE2
(filter, p,
test_wallet2_expand_subaddresses
, 50, 200);
209
210
TEST_PERFORMANCE1
(filter, p,
test_cn_slow_hash
, 0);
211
TEST_PERFORMANCE1
(filter, p,
test_cn_slow_hash
, 1);
212
TEST_PERFORMANCE1
(filter, p,
test_cn_slow_hash
, 2);
213
TEST_PERFORMANCE1
(filter, p,
test_cn_slow_hash
, 4);
214
TEST_PERFORMANCE1
(filter, p,
test_cn_fast_hash
, 32);
215
TEST_PERFORMANCE1
(filter, p,
test_cn_fast_hash
, 16384);
216
217
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 3,
false
);
218
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 5,
false
);
219
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 10,
false
);
220
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 100,
false
);
221
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 3,
true
);
222
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 5,
true
);
223
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 10,
true
);
224
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 100,
true
);
225
226
TEST_PERFORMANCE2
(filter, p,
test_equality
,
memcmp32
,
true
);
227
TEST_PERFORMANCE2
(filter, p,
test_equality
,
memcmp32
,
false
);
228
TEST_PERFORMANCE2
(filter, p,
test_equality
,
verify32
,
false
);
229
TEST_PERFORMANCE2
(filter, p,
test_equality
,
verify32
,
false
);
230
231
TEST_PERFORMANCE1
(filter, p,
test_range_proof
,
true
);
232
TEST_PERFORMANCE1
(filter, p,
test_range_proof
,
false
);
233
234
TEST_PERFORMANCE2
(filter, p,
test_bulletproof
,
true
, 1);
// 1 bulletproof with 1 amount
235
TEST_PERFORMANCE2
(filter, p,
test_bulletproof
,
false
, 1);
236
237
TEST_PERFORMANCE2
(filter, p,
test_bulletproof
,
true
, 2);
// 1 bulletproof with 2 amounts
238
TEST_PERFORMANCE2
(filter, p,
test_bulletproof
,
false
, 2);
239
240
TEST_PERFORMANCE2
(filter, p,
test_bulletproof
,
true
, 15);
// 1 bulletproof with 15 amounts
241
TEST_PERFORMANCE2
(filter, p,
test_bulletproof
,
false
, 15);
242
243
TEST_PERFORMANCE6
(filter, p,
test_aggregated_bulletproof
,
false
, 2, 1, 1, 0, 4);
244
TEST_PERFORMANCE6
(filter, p,
test_aggregated_bulletproof
,
true
, 2, 1, 1, 0, 4);
// 4 proofs, each with 2 amounts
245
TEST_PERFORMANCE6
(filter, p,
test_aggregated_bulletproof
,
false
, 8, 1, 1, 0, 4);
246
TEST_PERFORMANCE6
(filter, p,
test_aggregated_bulletproof
,
true
, 8, 1, 1, 0, 4);
// 4 proofs, each with 8 amounts
247
TEST_PERFORMANCE6
(filter, p,
test_aggregated_bulletproof
,
false
, 1, 1, 2, 0, 4);
248
TEST_PERFORMANCE6
(filter, p,
test_aggregated_bulletproof
,
true
, 1, 1, 2, 0, 4);
// 4 proofs with 1, 2, 4, 8 amounts
249
TEST_PERFORMANCE6
(filter, p,
test_aggregated_bulletproof
,
false
, 1, 8, 1, 1, 4);
250
TEST_PERFORMANCE6
(filter, p,
test_aggregated_bulletproof
,
true
, 1, 8, 1, 1, 4);
// 32 proofs, with 1, 2, 3, 4 amounts, 8 of each
251
TEST_PERFORMANCE6
(filter, p,
test_aggregated_bulletproof
,
false
, 2, 1, 1, 0, 64);
252
TEST_PERFORMANCE6
(filter, p,
test_aggregated_bulletproof
,
true
, 2, 1, 1, 0, 64);
// 64 proof, each with 2 amounts
253
254
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 3,
false
);
255
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 5,
false
);
256
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 10,
false
);
257
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 100,
false
);
258
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 3,
true
);
259
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 5,
true
);
260
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 10,
true
);
261
TEST_PERFORMANCE3
(filter, p,
test_ringct_mlsag
, 1, 100,
true
);
262
263
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_sc_add
);
264
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_sc_sub
);
265
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_sc_mul
);
266
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_ge_add_raw
);
267
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_ge_add_p3_p3
);
268
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_addKeys
);
269
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_scalarmultBase
);
270
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_scalarmultKey
);
271
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_scalarmultH
);
272
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_scalarmult8
);
273
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_ge_dsm_precomp
);
274
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_ge_double_scalarmult_base_vartime
);
275
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_ge_double_scalarmult_precomp_vartime
);
276
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_ge_double_scalarmult_precomp_vartime2
);
277
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_addKeys2
);
278
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_addKeys3
);
279
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_addKeys3_2
);
280
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_isInMainSubgroup
);
281
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_zeroCommitUncached
);
282
TEST_PERFORMANCE1
(filter, p,
test_crypto_ops
,
op_zeroCommitCached
);
283
284
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 2);
285
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 4);
286
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 8);
287
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 16);
288
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 32);
289
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 64);
290
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 128);
291
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 256);
292
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 512);
293
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 1024);
294
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 2048);
295
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_bos_coster
, 4096);
296
297
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 2);
298
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 4);
299
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 8);
300
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 16);
301
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 32);
302
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 64);
303
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 128);
304
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 256);
305
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 512);
306
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 1024);
307
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 2048);
308
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus
, 4096);
309
310
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 2);
311
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 4);
312
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 8);
313
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 16);
314
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 32);
315
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 64);
316
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 128);
317
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 256);
318
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 512);
319
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 1024);
320
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 2048);
321
TEST_PERFORMANCE2
(filter, p,
test_multiexp
,
multiexp_straus_cached
, 4096);
322
323
#if 1
324
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2, 1);
325
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4, 2);
326
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 8, 2);
327
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 16, 3);
328
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 32, 4);
329
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 64, 4);
330
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 128, 5);
331
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 256, 6);
332
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 512, 7);
333
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 1024, 7);
334
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2048, 8);
335
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4096, 9);
336
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2, 1);
337
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4, 2);
338
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 8, 2);
339
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 16, 3);
340
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 32, 4);
341
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 64, 4);
342
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 128, 5);
343
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 256, 6);
344
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 512, 7);
345
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 1024, 7);
346
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2048, 8);
347
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4096, 9);
348
#else
349
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2, 1);
350
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2, 2);
351
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2, 3);
352
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2, 4);
353
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2, 5);
354
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2, 6);
355
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2, 7);
356
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2, 8);
357
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2, 9);
358
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4, 1);
359
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4, 2);
360
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4, 3);
361
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4, 4);
362
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4, 5);
363
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4, 6);
364
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4, 7);
365
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4, 8);
366
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4, 9);
367
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 8, 1);
368
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 8, 2);
369
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 8, 3);
370
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 8, 4);
371
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 8, 5);
372
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 8, 6);
373
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 8, 7);
374
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 8, 8);
375
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 8, 9);
376
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 16, 1);
377
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 16, 2);
378
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 16, 3);
379
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 16, 4);
380
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 16, 5);
381
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 16, 6);
382
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 16, 7);
383
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 16, 8);
384
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 16, 9);
385
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 32, 1);
386
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 32, 2);
387
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 32, 3);
388
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 32, 4);
389
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 32, 5);
390
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 32, 6);
391
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 32, 7);
392
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 32, 8);
393
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 32, 9);
394
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 64, 1);
395
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 64, 2);
396
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 64, 3);
397
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 64, 4);
398
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 64, 5);
399
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 64, 6);
400
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 64, 7);
401
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 64, 8);
402
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 64, 9);
403
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 128, 1);
404
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 128, 2);
405
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 128, 3);
406
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 128, 4);
407
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 128, 5);
408
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 128, 6);
409
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 128, 7);
410
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 128, 8);
411
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 128, 9);
412
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 256, 1);
413
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 256, 2);
414
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 256, 3);
415
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 256, 4);
416
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 256, 5);
417
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 256, 6);
418
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 256, 7);
419
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 256, 8);
420
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 256, 9);
421
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 512, 1);
422
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 512, 2);
423
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 512, 3);
424
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 512, 4);
425
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 512, 5);
426
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 512, 6);
427
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 512, 7);
428
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 512, 8);
429
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 512, 9);
430
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 1024, 1);
431
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 1024, 2);
432
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 1024, 3);
433
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 1024, 4);
434
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 1024, 5);
435
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 1024, 6);
436
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 1024, 7);
437
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 1024, 8);
438
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 1024, 9);
439
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2048, 1);
440
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2048, 2);
441
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2048, 3);
442
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2048, 4);
443
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2048, 5);
444
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2048, 6);
445
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2048, 7);
446
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2048, 8);
447
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 2048, 9);
448
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4096, 1);
449
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4096, 2);
450
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4096, 3);
451
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4096, 4);
452
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4096, 5);
453
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4096, 6);
454
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4096, 7);
455
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4096, 8);
456
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger_cached
, 4096, 9);
457
458
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2, 1);
459
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2, 2);
460
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2, 3);
461
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2, 4);
462
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2, 5);
463
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2, 6);
464
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2, 7);
465
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2, 8);
466
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2, 9);
467
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4, 1);
468
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4, 2);
469
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4, 3);
470
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4, 4);
471
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4, 5);
472
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4, 6);
473
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4, 7);
474
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4, 8);
475
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4, 9);
476
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 8, 1);
477
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 8, 2);
478
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 8, 3);
479
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 8, 4);
480
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 8, 5);
481
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 8, 6);
482
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 8, 7);
483
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 8, 8);
484
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 8, 9);
485
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 16, 1);
486
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 16, 2);
487
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 16, 3);
488
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 16, 4);
489
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 16, 5);
490
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 16, 6);
491
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 16, 7);
492
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 16, 8);
493
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 16, 9);
494
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 32, 1);
495
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 32, 2);
496
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 32, 3);
497
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 32, 4);
498
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 32, 5);
499
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 32, 6);
500
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 32, 7);
501
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 32, 8);
502
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 32, 9);
503
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 64, 1);
504
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 64, 2);
505
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 64, 3);
506
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 64, 4);
507
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 64, 5);
508
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 64, 6);
509
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 64, 7);
510
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 64, 8);
511
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 64, 9);
512
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 128, 1);
513
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 128, 2);
514
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 128, 3);
515
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 128, 4);
516
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 128, 5);
517
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 128, 6);
518
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 128, 7);
519
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 128, 8);
520
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 128, 9);
521
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 256, 1);
522
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 256, 2);
523
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 256, 3);
524
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 256, 4);
525
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 256, 5);
526
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 256, 6);
527
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 256, 7);
528
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 256, 8);
529
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 256, 9);
530
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 512, 1);
531
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 512, 2);
532
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 512, 3);
533
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 512, 4);
534
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 512, 5);
535
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 512, 6);
536
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 512, 7);
537
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 512, 8);
538
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 512, 9);
539
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 1024, 1);
540
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 1024, 2);
541
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 1024, 3);
542
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 1024, 4);
543
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 1024, 5);
544
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 1024, 6);
545
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 1024, 7);
546
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 1024, 8);
547
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 1024, 9);
548
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2048, 1);
549
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2048, 2);
550
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2048, 3);
551
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2048, 4);
552
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2048, 5);
553
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2048, 6);
554
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2048, 7);
555
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2048, 8);
556
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 2048, 9);
557
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4096, 1);
558
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4096, 2);
559
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4096, 3);
560
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4096, 4);
561
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4096, 5);
562
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4096, 6);
563
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4096, 7);
564
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4096, 8);
565
TEST_PERFORMANCE3
(filter, p,
test_multiexp
,
multiexp_pippenger
, 4096, 9);
566
#endif
567
568
std::cout <<
"Tests finished. Elapsed time: "
<< timer.
elapsed_ms
() / 1000 <<
" sec"
<< std::endl;
569
570
return
0;
571
CATCH_ENTRY_L0
(
"main"
, 1);
572
}
main
int main()
Definition
archivertest.cpp:283
bulletproof.h
check_hash.h
check_tx_signature.h
TimingsDatabase
Definition
timings.h:9
performance_timer
Definition
performance_tests.h:46
performance_timer::start
void start()
Definition
performance_tests.h:55
performance_timer::elapsed_ms
int elapsed_ms()
Definition
performance_tests.h:60
test_aggregated_bulletproof
Definition
bulletproof.h:66
test_bulletproof
Definition
bulletproof.h:38
test_check_hash
Definition
check_hash.h:36
test_check_tx_signature_aggregated_bulletproofs
Definition
check_tx_signature.h:108
test_check_tx_signature
Definition
check_tx_signature.h:46
test_cn_fast_hash
Definition
cn_fast_hash.h:39
test_cn_slow_hash
Definition
cn_slow_hash.h:40
test_construct_tx
Definition
construct_tx.h:42
test_crypto_ops
Definition
crypto_ops.h:64
test_derive_public_key
Definition
derive_public_key.h:40
test_derive_secret_key
Definition
derive_secret_key.h:40
test_equality
Definition
equality.h:50
test_ge_frombytes_vartime
Definition
ge_frombytes_vartime.h:40
test_ge_tobytes
Definition
ge_tobytes.h:39
test_generate_key_derivation
Definition
generate_key_derivation.h:40
test_generate_key_image_helper
Definition
generate_key_image_helper.h:42
test_generate_key_image
Definition
generate_key_image.h:40
test_generate_keypair
Definition
generate_keypair.h:38
test_is_out_to_acc_precomp
Definition
is_out_to_acc.h:53
test_is_out_to_acc
Definition
is_out_to_acc.h:41
test_multiexp
Definition
multiexp.h:48
test_range_proof
Definition
range_proof.h:37
test_ringct_mlsag
Definition
rct_mlsag.h:40
test_sc_check
Definition
sc_check.h:34
test_sc_reduce32
Definition
sc_reduce32.h:35
test_signature
Definition
signature.h:40
test_wallet2_expand_subaddresses
Definition
subaddress_expand.h:40
cn_fast_hash.h
cn_slow_hash.h
command_line.h
construct_tx.h
crypto_ops.h
op_scalarmultKey
@ op_scalarmultKey
Definition
crypto_ops.h:48
op_ge_double_scalarmult_base_vartime
@ op_ge_double_scalarmult_base_vartime
Definition
crypto_ops.h:52
op_ge_double_scalarmult_precomp_vartime
@ op_ge_double_scalarmult_precomp_vartime
Definition
crypto_ops.h:53
op_ge_add_raw
@ op_ge_add_raw
Definition
crypto_ops.h:41
op_scalarmultH
@ op_scalarmultH
Definition
crypto_ops.h:49
op_zeroCommitUncached
@ op_zeroCommitUncached
Definition
crypto_ops.h:59
op_sc_add
@ op_sc_add
Definition
crypto_ops.h:38
op_addKeys2
@ op_addKeys2
Definition
crypto_ops.h:55
op_zeroCommitCached
@ op_zeroCommitCached
Definition
crypto_ops.h:43
op_ge_dsm_precomp
@ op_ge_dsm_precomp
Definition
crypto_ops.h:51
op_ge_double_scalarmult_precomp_vartime2
@ op_ge_double_scalarmult_precomp_vartime2
Definition
crypto_ops.h:54
op_scalarmultBase
@ op_scalarmultBase
Definition
crypto_ops.h:47
op_ge_add_p3_p3
@ op_ge_add_p3_p3
Definition
crypto_ops.h:42
op_addKeys
@ op_addKeys
Definition
crypto_ops.h:46
op_isInMainSubgroup
@ op_isInMainSubgroup
Definition
crypto_ops.h:58
op_addKeys3_2
@ op_addKeys3_2
Definition
crypto_ops.h:57
op_sc_sub
@ op_sc_sub
Definition
crypto_ops.h:39
op_scalarmult8
@ op_scalarmult8
Definition
crypto_ops.h:50
op_addKeys3
@ op_addKeys3
Definition
crypto_ops.h:56
op_sc_mul
@ op_sc_mul
Definition
crypto_ops.h:40
derive_public_key.h
derive_secret_key.h
equality.h
ge_frombytes_vartime.h
ge_tobytes.h
generate_key_derivation.h
generate_key_image.h
generate_key_image_helper.h
generate_keypair.h
is_out_to_acc.h
mlog_configure
void mlog_configure(const std::string &filename_base, bool console, const std::size_t max_log_file_size=MAX_LOG_FILE_SIZE, const std::size_t max_log_files=MAX_LOG_FILES)
Definition
mlog.cpp:148
mlog_get_default_log_path
std::string mlog_get_default_log_path(const char *default_filename)
Definition
mlog.cpp:72
CATCH_ENTRY_L0
#define CATCH_ENTRY_L0(lacation, return_val)
Definition
misc_log_ex.h:165
TRY_ENTRY
#define TRY_ENTRY()
Definition
misc_log_ex.h:151
command_line::add_arg
void add_arg(boost::program_options::options_description &description, const arg_descriptor< T, required, dependent, NUM_DEPS > &arg, bool unique=true)
Definition
command_line.h:188
command_line::handle_error_helper
bool handle_error_helper(const boost::program_options::options_description &desc, F parser)
Definition
command_line.h:237
command_line::get_arg
T get_arg(const boost::program_options::variables_map &vm, const arg_descriptor< T, false, true > &arg)
Definition
command_line.h:271
rct::RangeProofBorromean
@ RangeProofBorromean
Definition
rctTypes.h:235
rct::RangeProofMultiOutputBulletproof
@ RangeProofMultiOutputBulletproof
Definition
rctTypes.h:235
rct::RangeProofPaddedBulletproof
@ RangeProofPaddedBulletproof
Definition
rctTypes.h:235
tools::glob_to_regex
std::string glob_to_regex(const std::string &val)
Definition
util.cpp:1012
tools::on_startup
bool on_startup()
Definition
util.cpp:778
performance_tests.h
TEST_PERFORMANCE4
#define TEST_PERFORMANCE4(filter, params, test_class, a0, a1, a2, a3)
Definition
performance_tests.h:249
TEST_PERFORMANCE0
#define TEST_PERFORMANCE0(filter, params, test_class)
Definition
performance_tests.h:245
TEST_PERFORMANCE6
#define TEST_PERFORMANCE6(filter, params, test_class, a0, a1, a2, a3, a4, a5)
Definition
performance_tests.h:251
TEST_PERFORMANCE3
#define TEST_PERFORMANCE3(filter, params, test_class, a0, a1, a2)
Definition
performance_tests.h:248
TEST_PERFORMANCE1
#define TEST_PERFORMANCE1(filter, params, test_class, a0)
Definition
performance_tests.h:246
TEST_PERFORMANCE2
#define TEST_PERFORMANCE2(filter, params, test_class, a0, a1)
Definition
performance_tests.h:247
TEST_PERFORMANCE5
#define TEST_PERFORMANCE5(filter, params, test_class, a0, a1, a2, a3, a4)
Definition
performance_tests.h:250
performance_utils.h
set_thread_high_priority
void set_thread_high_priority()
Definition
performance_utils.h:64
set_process_affinity
void set_process_affinity(int core)
Definition
performance_utils.h:42
range_proof.h
rct_mlsag.h
sc_check.h
sc_reduce32.h
signature.h
util.h
Params
Definition
performance_tests.h:72
Params::loop_multiplier
unsigned loop_multiplier
Definition
performance_tests.h:76
Params::stats
bool stats
Definition
performance_tests.h:75
Params::td
TimingsDatabase td
Definition
performance_tests.h:73
Params::verbose
bool verbose
Definition
performance_tests.h:74
command_line::arg_descriptor
Definition
command_line.h:54
memcmp32
Definition
equality.h:37
verify32
Definition
equality.h:43
subaddress_expand.h
multiexp.h
multiexp_pippenger
@ multiexp_pippenger
Definition
multiexp.h:42
multiexp_pippenger_cached
@ multiexp_pippenger_cached
Definition
multiexp.h:43
multiexp_straus_cached
@ multiexp_straus_cached
Definition
multiexp.h:41
multiexp_bos_coster
@ multiexp_bos_coster
Definition
multiexp.h:39
multiexp_straus
@ multiexp_straus
Definition
multiexp.h:40
tests
performance_tests
main.cpp
Generated on
for Electroneum by
1.17.0