summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/tclStubInit.c2
-rw-r--r--generic/tclTomMath.decls3
-rw-r--r--generic/tclTomMath.h8
-rw-r--r--generic/tclTomMathDecls.h13
4 files changed, 20 insertions, 6 deletions
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index db2ed5c..8ab015f 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -650,7 +650,7 @@ const TclTomMathStubs tclTomMathStubs = {
TclBN_mp_get_mag_ull, /* 69 */
TclBN_mp_set_ul, /* 70 */
TclBN_mp_get_mag_ul, /* 71 */
- 0, /* 72 */
+ TclBN_mp_isodd, /* 72 */
0, /* 73 */
0, /* 74 */
0, /* 75 */
diff --git a/generic/tclTomMath.decls b/generic/tclTomMath.decls
index c5c21b9..753ebca 100644
--- a/generic/tclTomMath.decls
+++ b/generic/tclTomMath.decls
@@ -219,6 +219,9 @@ declare 70 {
declare 71 {
unsigned long TclBN_mp_get_mag_ul(const mp_int *a)
}
+declare 72 {
+ mp_bool TclBN_mp_isodd(const mp_int *a)
+}
# Added in libtommath 1.1.0
# No longer in use: replaced by mp_and()
diff --git a/generic/tclTomMath.h b/generic/tclTomMath.h
index f2d327b..74a2c54 100644
--- a/generic/tclTomMath.h
+++ b/generic/tclTomMath.h
@@ -314,8 +314,12 @@ mp_err mp_init_size(mp_int *a, int size) MP_WUR;
/* ---> Basic Manipulations <--- */
#define mp_iszero(a) (((a)->used == 0) ? MP_YES : MP_NO)
-#define mp_iseven(a) (((a)->used == 0 || (((a)->dp[0] & 1) == 0)) ? MP_YES : MP_NO)
-#define mp_isodd(a) (((a)->used > 0 && (((a)->dp[0] & 1) == 1)) ? MP_YES : MP_NO)
+/*
+mp_bool mp_iseven(const mp_int *a) MP_WUR;
+*/
+/*
+mp_bool mp_isodd(const mp_int *a) MP_WUR;
+*/
#define mp_isneg(a) (((a)->sign != MP_ZPOS) ? MP_YES : MP_NO)
/* set to zero */
diff --git a/generic/tclTomMathDecls.h b/generic/tclTomMathDecls.h
index 8907462..20fa442 100644
--- a/generic/tclTomMathDecls.h
+++ b/generic/tclTomMathDecls.h
@@ -96,6 +96,7 @@
#define s_mp_karatsuba_mul TclBN_mp_karatsuba_mul
#define mp_karatsuba_sqr TclBN_mp_karatsuba_sqr
#define s_mp_karatsuba_sqr TclBN_mp_karatsuba_sqr
+#define mp_isodd TclBN_mp_isodd
#define mp_lshd TclBN_mp_lshd
#define mp_mod TclBN_mp_mod
#define mp_mod_2d TclBN_mp_mod_2d
@@ -331,7 +332,8 @@ EXTERN Tcl_WideUInt TclBN_mp_get_mag_ull(const mp_int *a);
EXTERN void TclBN_mp_set_ul(mp_int *a, unsigned long i);
/* 71 */
EXTERN unsigned long TclBN_mp_get_mag_ul(const mp_int *a);
-/* Slot 72 is reserved */
+/* 72 */
+EXTERN mp_bool TclBN_mp_isodd(const mp_int *a);
/* Slot 73 is reserved */
/* Slot 74 is reserved */
/* Slot 75 is reserved */
@@ -424,7 +426,7 @@ typedef struct TclTomMathStubs {
Tcl_WideUInt (*tclBN_mp_get_mag_ull) (const mp_int *a); /* 69 */
void (*tclBN_mp_set_ul) (mp_int *a, unsigned long i); /* 70 */
unsigned long (*tclBN_mp_get_mag_ul) (const mp_int *a); /* 71 */
- void (*reserved72)(void);
+ mp_bool (*tclBN_mp_isodd) (const mp_int *a); /* 72 */
void (*reserved73)(void);
void (*reserved74)(void);
void (*reserved75)(void);
@@ -573,7 +575,8 @@ extern const TclTomMathStubs *tclTomMathStubsPtr;
(tclTomMathStubsPtr->tclBN_mp_set_ul) /* 70 */
#define TclBN_mp_get_mag_ul \
(tclTomMathStubsPtr->tclBN_mp_get_mag_ul) /* 71 */
-/* Slot 72 is reserved */
+#define TclBN_mp_isodd \
+ (tclTomMathStubsPtr->tclBN_mp_isodd) /* 72 */
/* Slot 73 is reserved */
/* Slot 74 is reserved */
/* Slot 75 is reserved */
@@ -591,6 +594,10 @@ extern const TclTomMathStubs *tclTomMathStubsPtr;
/* !END!: Do not edit above this line. */
+#undef mp_isodd
+#define mp_isodd(a) (((a)->used > 0 && (((a)->dp[0] & 1) == 1)) ? MP_YES : MP_NO)
+#define mp_iseven(a) (((a)->used == 0 || (((a)->dp[0] & 1) == 0)) ? MP_YES : MP_NO)
+
#undef TCL_STORAGE_CLASS
#define TCL_STORAGE_CLASS DLLIMPORT