diff options
author | Werner Koch <[email protected]> | 1999-07-02 09:50:57 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 1999-07-02 09:50:57 +0000 |
commit | 86abac78a20dfe49aea28058956a3fe8b6ced9ee (patch) | |
tree | e7a2d82e7c2c6a66b493b7427e28df04cebd00fd /mpi/mpi-bit.c | |
parent | See ChangeLog: Thu Jul 1 12:47:31 CEST 1999 Werner Koch (diff) | |
download | gnupg-86abac78a20dfe49aea28058956a3fe8b6ced9ee.tar.gz gnupg-86abac78a20dfe49aea28058956a3fe8b6ced9ee.zip |
See ChangeLog: Fri Jul 2 11:45:54 CEST 1999 Werner Koch
Diffstat (limited to 'mpi/mpi-bit.c')
-rw-r--r-- | mpi/mpi-bit.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/mpi/mpi-bit.c b/mpi/mpi-bit.c index 00aa5d086..f1eff8636 100644 --- a/mpi/mpi-bit.c +++ b/mpi/mpi-bit.c @@ -212,3 +212,51 @@ mpi_rshift( MPI x, MPI a, unsigned n ) x->nlimbs = xsize; } + +/**************** + * Shift A by COUNT limbs to the left + * This is used only within the MPI library + */ +void +mpi_lshift_limbs( MPI a, unsigned int count ) +{ + mpi_ptr_t ap = a->d; + int n = a->nlimbs; + int i; + + if( !count || !n ) + return; + + RESIZE_IF_NEEDED( a, n+count ); + + for( i = n-1; i >= 0; i-- ) + ap[i+count] = ap[i]; + for(i=0; i < count; i++ ) + ap[i] = 0; + a->nlimbs += count; +} + + +/**************** + * Shift A by COUNT limbs to the right + * This is used only within the MPI library + */ +void +mpi_rshift_limbs( MPI a, unsigned int count ) +{ + mpi_ptr_t ap = a->d; + mpi_size_t n = a->nlimbs; + unsigned int i; + + if( count >= n ) { + a->nlimbs = 0; + return; + } + + for( i = 0; i < n - count; i++ ) + ap[i] = ap[i+count]; + ap[i] = 0; + a->nlimbs -= count; +} + + |