]> pd.if.org Git - zpackage/blob - tomsfastmath/src/bit/fp_lshd.c
commit files needed for zpm-fetchurl
[zpackage] / tomsfastmath / src / bit / fp_lshd.c
1 /* TomsFastMath, a fast ISO C bignum library.
2  * 
3  * This project is meant to fill in where LibTomMath
4  * falls short.  That is speed ;-)
5  *
6  * This project is public domain and free for all purposes.
7  * 
8  * Tom St Denis, tomstdenis@gmail.com
9  */
10 #include <tfm_private.h>
11
12 void fp_lshd(fp_int *a, int x)
13 {
14    int y;
15
16    /* move up and truncate as required */
17    y = MIN(a->used + x - 1, (int)(FP_SIZE-1));
18
19    /* store new size */
20    a->used = y + 1;
21
22    /* move digits */
23    for (; y >= x; y--) {
24        a->dp[y] = a->dp[y-x];
25    }
26  
27    /* zero lower digits */
28    for (; y >= 0; y--) {
29        a->dp[y] = 0;
30    }
31
32    /* clamp digits */
33    fp_clamp(a);
34 }
35
36 /* $Source$ */
37 /* $Revision$ */
38 /* $Date$ */