Bitcoin Core  27.99.0
P2P Digital Currency
Classes | Macros | Functions | Variables
modinv32_impl.h File Reference
#include "modinv32.h"
#include "util.h"
#include <stdlib.h>
Include dependency graph for modinv32_impl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  secp256k1_modinv32_trans2x2
 

Macros

#define JACOBI32_ITERATIONS   50
 

Functions

static void secp256k1_modinv32_normalize_30 (secp256k1_modinv32_signed30 *r, int32_t sign, const secp256k1_modinv32_modinfo *modinfo)
 
static int32_t secp256k1_modinv32_divsteps_30 (int32_t zeta, uint32_t f0, uint32_t g0, secp256k1_modinv32_trans2x2 *t)
 
static int32_t secp256k1_modinv32_divsteps_30_var (int32_t eta, uint32_t f0, uint32_t g0, secp256k1_modinv32_trans2x2 *t)
 
static int32_t secp256k1_modinv32_posdivsteps_30_var (int32_t eta, uint32_t f0, uint32_t g0, secp256k1_modinv32_trans2x2 *t, int *jacp)
 
static void secp256k1_modinv32_update_de_30 (secp256k1_modinv32_signed30 *d, secp256k1_modinv32_signed30 *e, const secp256k1_modinv32_trans2x2 *t, const secp256k1_modinv32_modinfo *modinfo)
 
static void secp256k1_modinv32_update_fg_30 (secp256k1_modinv32_signed30 *f, secp256k1_modinv32_signed30 *g, const secp256k1_modinv32_trans2x2 *t)
 
static void secp256k1_modinv32_update_fg_30_var (int len, secp256k1_modinv32_signed30 *f, secp256k1_modinv32_signed30 *g, const secp256k1_modinv32_trans2x2 *t)
 
static void secp256k1_modinv32 (secp256k1_modinv32_signed30 *x, const secp256k1_modinv32_modinfo *modinfo)
 
static void secp256k1_modinv32_var (secp256k1_modinv32_signed30 *x, const secp256k1_modinv32_modinfo *modinfo)
 
static int secp256k1_jacobi32_maybe_var (const secp256k1_modinv32_signed30 *x, const secp256k1_modinv32_modinfo *modinfo)
 

Variables

static const uint8_t secp256k1_modinv32_inv256 [128]
 

Macro Definition Documentation

◆ JACOBI32_ITERATIONS

#define JACOBI32_ITERATIONS   50

Definition at line 664 of file modinv32_impl.h.

Function Documentation

◆ secp256k1_jacobi32_maybe_var()

static int secp256k1_jacobi32_maybe_var ( const secp256k1_modinv32_signed30 x,
const secp256k1_modinv32_modinfo modinfo 
)
static

Definition at line 668 of file modinv32_impl.h.

Here is the call graph for this function:

◆ secp256k1_modinv32()

static void secp256k1_modinv32 ( secp256k1_modinv32_signed30 x,
const secp256k1_modinv32_modinfo modinfo 
)
static

Definition at line 532 of file modinv32_impl.h.

Here is the call graph for this function:

◆ secp256k1_modinv32_divsteps_30()

static int32_t secp256k1_modinv32_divsteps_30 ( int32_t  zeta,
uint32_t  f0,
uint32_t  g0,
secp256k1_modinv32_trans2x2 t 
)
static

Definition at line 179 of file modinv32_impl.h.

Here is the caller graph for this function:

◆ secp256k1_modinv32_divsteps_30_var()

static int32_t secp256k1_modinv32_divsteps_30_var ( int32_t  eta,
uint32_t  f0,
uint32_t  g0,
secp256k1_modinv32_trans2x2 t 
)
static

Definition at line 261 of file modinv32_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ secp256k1_modinv32_normalize_30()

static void secp256k1_modinv32_normalize_30 ( secp256k1_modinv32_signed30 r,
int32_t  sign,
const secp256k1_modinv32_modinfo modinfo 
)
static

Definition at line 63 of file modinv32_impl.h.

Here is the caller graph for this function:

◆ secp256k1_modinv32_posdivsteps_30_var()

static int32_t secp256k1_modinv32_posdivsteps_30_var ( int32_t  eta,
uint32_t  f0,
uint32_t  g0,
secp256k1_modinv32_trans2x2 t,
int *  jacp 
)
static

Definition at line 334 of file modinv32_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ secp256k1_modinv32_update_de_30()

static void secp256k1_modinv32_update_de_30 ( secp256k1_modinv32_signed30 d,
secp256k1_modinv32_signed30 e,
const secp256k1_modinv32_trans2x2 t,
const secp256k1_modinv32_modinfo modinfo 
)
static

Definition at line 408 of file modinv32_impl.h.

Here is the caller graph for this function:

◆ secp256k1_modinv32_update_fg_30()

static void secp256k1_modinv32_update_fg_30 ( secp256k1_modinv32_signed30 f,
secp256k1_modinv32_signed30 g,
const secp256k1_modinv32_trans2x2 t 
)
static

Definition at line 466 of file modinv32_impl.h.

Here is the caller graph for this function:

◆ secp256k1_modinv32_update_fg_30_var()

static void secp256k1_modinv32_update_fg_30_var ( int  len,
secp256k1_modinv32_signed30 f,
secp256k1_modinv32_signed30 g,
const secp256k1_modinv32_trans2x2 t 
)
static

Definition at line 501 of file modinv32_impl.h.

Here is the caller graph for this function:

◆ secp256k1_modinv32_var()

static void secp256k1_modinv32_var ( secp256k1_modinv32_signed30 x,
const secp256k1_modinv32_modinfo modinfo 
)
static

Definition at line 582 of file modinv32_impl.h.

Here is the call graph for this function:

Variable Documentation

◆ secp256k1_modinv32_inv256

const uint8_t secp256k1_modinv32_inv256[128]
static
Initial value:
= {
0xFF, 0x55, 0x33, 0x49, 0xC7, 0x5D, 0x3B, 0x11, 0x0F, 0xE5, 0xC3, 0x59,
0xD7, 0xED, 0xCB, 0x21, 0x1F, 0x75, 0x53, 0x69, 0xE7, 0x7D, 0x5B, 0x31,
0x2F, 0x05, 0xE3, 0x79, 0xF7, 0x0D, 0xEB, 0x41, 0x3F, 0x95, 0x73, 0x89,
0x07, 0x9D, 0x7B, 0x51, 0x4F, 0x25, 0x03, 0x99, 0x17, 0x2D, 0x0B, 0x61,
0x5F, 0xB5, 0x93, 0xA9, 0x27, 0xBD, 0x9B, 0x71, 0x6F, 0x45, 0x23, 0xB9,
0x37, 0x4D, 0x2B, 0x81, 0x7F, 0xD5, 0xB3, 0xC9, 0x47, 0xDD, 0xBB, 0x91,
0x8F, 0x65, 0x43, 0xD9, 0x57, 0x6D, 0x4B, 0xA1, 0x9F, 0xF5, 0xD3, 0xE9,
0x67, 0xFD, 0xDB, 0xB1, 0xAF, 0x85, 0x63, 0xF9, 0x77, 0x8D, 0x6B, 0xC1,
0xBF, 0x15, 0xF3, 0x09, 0x87, 0x1D, 0xFB, 0xD1, 0xCF, 0xA5, 0x83, 0x19,
0x97, 0xAD, 0x8B, 0xE1, 0xDF, 0x35, 0x13, 0x29, 0xA7, 0x3D, 0x1B, 0xF1,
0xEF, 0xC5, 0xA3, 0x39, 0xB7, 0xCD, 0xAB, 0x01
}

Definition at line 237 of file modinv32_impl.h.