summaryrefslogtreecommitdiffstats
path: root/mpi
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-04-22 19:54:34 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-04-22 19:54:34 -0700
commit0ee6428c2ddf94b758bf6005f1bae593c7a0366c (patch)
tree9c695a34510530416e150c2da57ee7f88189ab6d /mpi
parentc5bdf7627cd12d134ea2e8bccb78440576bfd8e8 (diff)
downloadtxr-0ee6428c2ddf94b758bf6005f1bae593c7a0366c.tar.gz
txr-0ee6428c2ddf94b758bf6005f1bae593c7a0366c.tar.bz2
txr-0ee6428c2ddf94b758bf6005f1bae593c7a0366c.zip
mpi-set-mpi-word patch
* mpi/mpi.c (mp_set_word): New function. * mpi/mpi.h (mp_set_word): Declared.
Diffstat (limited to 'mpi')
-rw-r--r--mpi/mpi.c9
-rw-r--r--mpi/mpi.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/mpi/mpi.c b/mpi/mpi.c
index 7989a98c..93a97331 100644
--- a/mpi/mpi.c
+++ b/mpi/mpi.c
@@ -571,6 +571,15 @@ mp_err mp_get_intptr(mp_int *mp, int_ptr_t *z)
return MP_OKAY;
}
+mp_err mp_set_word(mp_int *mp, mp_word w, int sign)
+{
+ USED(mp) = 2;
+ DIGIT(mp, 0) = w & MP_DIGIT_MAX;
+ DIGIT(mp, 1) = w >> MP_DIGIT_BIT;
+ SIGN(mp) = sign;
+ return MP_OKAY;
+}
+
/*------------------------------------------------------------------------*/
/* {{{ Digit arithmetic */
diff --git a/mpi/mpi.h b/mpi/mpi.h
index e0fdbf92..91fb967d 100644
--- a/mpi/mpi.h
+++ b/mpi/mpi.h
@@ -100,6 +100,7 @@ void mp_set(mp_int *mp, mp_digit d);
mp_err mp_set_int(mp_int *mp, long z);
mp_err mp_set_intptr(mp_int *mp, int_ptr_t z);
mp_err mp_get_intptr(mp_int *mp, int_ptr_t *z);
+mp_err mp_set_word(mp_int *mp, mp_word w, int sign);
/*------------------------------------------------------------------------*/
/* Single digit arithmetic */