From 86abac78a20dfe49aea28058956a3fe8b6ced9ee Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 2 Jul 1999 09:50:57 +0000 Subject: See ChangeLog: Fri Jul 2 11:45:54 CEST 1999 Werner Koch --- mpi/mpi-bit.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'mpi/mpi-bit.c') 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; +} + + -- cgit v1.2.3