Monero
Loading...
Searching...
No Matches
multiexp.cpp File Reference
#include "gtest/gtest.h"
#include "crypto/crypto.h"
#include "ringct/rctOps.h"
#include "ringct/multiexp.h"
Include dependency graph for multiexp.cpp:

Macros

#define TESTSCALAR   []{ static const rct::key TESTSCALAR = rct::skGen(); return TESTSCALAR; }()
#define TESTPOW2SCALAR   []{ static const rct::key TESTPOW2SCALAR = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; return TESTPOW2SCALAR; }()
#define TESTSMALLSCALAR   []{ static const rct::key TESTSMALLSCALAR = {{5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; return TESTSMALLSCALAR; }()
#define TESTPOINT   []{ static const rct::key TESTPOINT = rct::scalarmultBase(rct::skGen()); return TESTPOINT; }()

Functions

static rct::key basic (const std::vector< rct::MultiexpData > &data)
static ge_p3 get_p3 (const rct::key &point)
 TEST (multiexp, bos_coster_empty)
 TEST (multiexp, straus_empty)
 TEST (multiexp, pippenger_empty)
 TEST (multiexp, bos_coster_zero_and_non_zero)
 TEST (multiexp, straus_zero_and_non_zero)
 TEST (multiexp, pippenger_zero_and_non_zero)
 TEST (multiexp, bos_coster_pow2_scalar)
 TEST (multiexp, straus_pow2_scalar)
 TEST (multiexp, pippenger_pow2_scalar)
 TEST (multiexp, bos_coster_only_zeroes)
 TEST (multiexp, straus_only_zeroes)
 TEST (multiexp, pippenger_only_zeroes)
 TEST (multiexp, bos_coster_only_identities)
 TEST (multiexp, straus_only_identities)
 TEST (multiexp, pippenger_only_identities)
 TEST (multiexp, bos_coster_random)
 TEST (multiexp, straus_random)
 TEST (multiexp, pippenger_random)
 TEST (multiexp, straus_cached)
 TEST (multiexp, pippenger_cached)
 TEST (multiexp, scalarmult_triple)

Macro Definition Documentation

◆ TESTPOINT

#define TESTPOINT   []{ static const rct::key TESTPOINT = rct::scalarmultBase(rct::skGen()); return TESTPOINT; }()

◆ TESTPOW2SCALAR

#define TESTPOW2SCALAR   []{ static const rct::key TESTPOW2SCALAR = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; return TESTPOW2SCALAR; }()

◆ TESTSCALAR

#define TESTSCALAR   []{ static const rct::key TESTSCALAR = rct::skGen(); return TESTSCALAR; }()

◆ TESTSMALLSCALAR

#define TESTSMALLSCALAR   []{ static const rct::key TESTSMALLSCALAR = {{5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; return TESTSMALLSCALAR; }()

Function Documentation

◆ basic()

rct::key basic ( const std::vector< rct::MultiexpData > & data)
static

◆ get_p3()

ge_p3 get_p3 ( const rct::key & point)
static

◆ TEST() [1/21]

TEST ( multiexp ,
bos_coster_empty  )

◆ TEST() [2/21]

TEST ( multiexp ,
bos_coster_only_identities  )

◆ TEST() [3/21]

TEST ( multiexp ,
bos_coster_only_zeroes  )

◆ TEST() [4/21]

TEST ( multiexp ,
bos_coster_pow2_scalar  )

◆ TEST() [5/21]

TEST ( multiexp ,
bos_coster_random  )

◆ TEST() [6/21]

TEST ( multiexp ,
bos_coster_zero_and_non_zero  )

◆ TEST() [7/21]

TEST ( multiexp ,
pippenger_cached  )

◆ TEST() [8/21]

TEST ( multiexp ,
pippenger_empty  )

◆ TEST() [9/21]

TEST ( multiexp ,
pippenger_only_identities  )

◆ TEST() [10/21]

TEST ( multiexp ,
pippenger_only_zeroes  )

◆ TEST() [11/21]

TEST ( multiexp ,
pippenger_pow2_scalar  )

◆ TEST() [12/21]

TEST ( multiexp ,
pippenger_random  )

◆ TEST() [13/21]

TEST ( multiexp ,
pippenger_zero_and_non_zero  )

◆ TEST() [14/21]

TEST ( multiexp ,
scalarmult_triple  )

◆ TEST() [15/21]

TEST ( multiexp ,
straus_cached  )

◆ TEST() [16/21]

TEST ( multiexp ,
straus_empty  )

◆ TEST() [17/21]

TEST ( multiexp ,
straus_only_identities  )

◆ TEST() [18/21]

TEST ( multiexp ,
straus_only_zeroes  )

◆ TEST() [19/21]

TEST ( multiexp ,
straus_pow2_scalar  )

◆ TEST() [20/21]

TEST ( multiexp ,
straus_random  )

◆ TEST() [21/21]

TEST ( multiexp ,
straus_zero_and_non_zero  )