#include <string.h>
#include <stdint.h>
#include "util.h"
#include "group.h"
#include "scalar.h"
#include "ecmult.h"
#include "precomputed_ecmult.h"
Go to the source code of this file.
◆ ECMULT_MAX_POINTS_PER_BATCH
#define ECMULT_MAX_POINTS_PER_BATCH 5000000 |
◆ ECMULT_PIPPENGER_THRESHOLD
#define ECMULT_PIPPENGER_THRESHOLD 88 |
◆ PIPPENGER_MAX_BUCKET_WINDOW
#define PIPPENGER_MAX_BUCKET_WINDOW 12 |
◆ PIPPENGER_SCRATCH_OBJECTS
#define PIPPENGER_SCRATCH_OBJECTS 6 |
◆ SECP256K1_ECMULT_TABLE_VERIFY
#define SECP256K1_ECMULT_TABLE_VERIFY |
( |
| n, |
|
|
| w ) |
Value:
VERIFY_CHECK((n) >= -((1 << ((w)-1)) - 1)); \
VERIFY_CHECK((n) <= ((1 << ((w)-1)) - 1));
#define VERIFY_CHECK(cond)
Definition at line 117 of file ecmult_impl.h.
117#define SECP256K1_ECMULT_TABLE_VERIFY(n,w) \
118 VERIFY_CHECK(((n) & 1) == 1); \
119 VERIFY_CHECK((n) >= -((1 << ((w)-1)) - 1)); \
120 VERIFY_CHECK((n) <= ((1 << ((w)-1)) - 1));
◆ STRAUSS_SCRATCH_OBJECTS
#define STRAUSS_SCRATCH_OBJECTS 5 |
◆ WINDOW_A
◆ WNAF_BITS
Larger values for ECMULT_WINDOW_SIZE result in possibly better performance at the cost of an exponentially larger precomputed table. The exact table size is (1 << (WINDOW_G - 2)) * sizeof(secp256k1_ge_storage) bytes, where sizeof(secp256k1_ge_storage) is typically 64 bytes but can be larger due to platform-specific padding and alignment. Two tables of this size are used (due to the endomorphism optimization).
Definition at line 44 of file ecmult_impl.h.
◆ WNAF_SIZE
Value:
#define WNAF_SIZE_BITS(bits, w)
Definition at line 46 of file ecmult_impl.h.
◆ WNAF_SIZE_BITS
#define WNAF_SIZE_BITS |
( |
| bits, |
|
|
| w ) |
Value:(((bits) + (w) - 1) / (w))
Definition at line 45 of file ecmult_impl.h.
◆ secp256k1_ecmult_multi_func