Dash Core  0.12.2.1
P2P Digital Currency
num.h
Go to the documentation of this file.
1 /**********************************************************************
2  * Copyright (c) 2013, 2014 Pieter Wuille *
3  * Distributed under the MIT software license, see the accompanying *
4  * file COPYING or http://www.opensource.org/licenses/mit-license.php.*
5  **********************************************************************/
6 
7 #ifndef _SECP256K1_NUM_
8 #define _SECP256K1_NUM_
9 
10 #ifndef USE_NUM_NONE
11 
12 #if defined HAVE_CONFIG_H
13 #include "libsecp256k1-config.h"
14 #endif
15 
16 #if defined(USE_NUM_GMP)
17 #include "num_gmp.h"
18 #else
19 #error "Please select num implementation"
20 #endif
21 
23 static void secp256k1_num_copy(secp256k1_num *r, const secp256k1_num *a);
24 
27 static void secp256k1_num_get_bin(unsigned char *r, unsigned int rlen, const secp256k1_num *a);
28 
30 static void secp256k1_num_set_bin(secp256k1_num *r, const unsigned char *a, unsigned int alen);
31 
33 static void secp256k1_num_mod_inverse(secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *m);
34 
36 static int secp256k1_num_cmp(const secp256k1_num *a, const secp256k1_num *b);
37 
39 static int secp256k1_num_eq(const secp256k1_num *a, const secp256k1_num *b);
40 
42 static void secp256k1_num_add(secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b);
43 
45 static void secp256k1_num_sub(secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b);
46 
48 static void secp256k1_num_mul(secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b);
49 
52 static void secp256k1_num_mod(secp256k1_num *r, const secp256k1_num *m);
53 
55 static void secp256k1_num_shift(secp256k1_num *r, int bits);
56 
58 static int secp256k1_num_is_zero(const secp256k1_num *a);
59 
61 static int secp256k1_num_is_neg(const secp256k1_num *a);
62 
64 static void secp256k1_num_negate(secp256k1_num *r);
65 
66 #endif
67 
68 #endif
static int secp256k1_num_eq(const secp256k1_num *a, const secp256k1_num *b)
static void secp256k1_num_set_bin(secp256k1_num *r, const unsigned char *a, unsigned int alen)
static void secp256k1_num_copy(secp256k1_num *r, const secp256k1_num *a)
static void secp256k1_num_mod_inverse(secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *m)
static void secp256k1_num_sub(secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b)
static void secp256k1_num_add(secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b)
static void secp256k1_num_shift(secp256k1_num *r, int bits)
static void secp256k1_num_mul(secp256k1_num *r, const secp256k1_num *a, const secp256k1_num *b)
static void secp256k1_num_negate(secp256k1_num *r)
static int secp256k1_num_cmp(const secp256k1_num *a, const secp256k1_num *b)
static int secp256k1_num_is_zero(const secp256k1_num *a)
static void secp256k1_num_mod(secp256k1_num *r, const secp256k1_num *m)
static void secp256k1_num_get_bin(unsigned char *r, unsigned int rlen, const secp256k1_num *a)
static int secp256k1_num_is_neg(const secp256k1_num *a)