Annotation of coherent/d/usr/lib/libmp/norm.c, revision 1.1.1.1

1.1       root        1: #include "mprec.h"
                      2: 
                      3: 
                      4: /*
                      5:  *     Norm normalizes the mint pointed to by "a".  This simply entails
                      6:  *     propogating any carry and truncating any leading 00 or NEFL bytes.
                      7:  *     Note that norm assumes that there is enough room for the result.
                      8:  */
                      9: 
                     10: void
                     11: norm(a)
                     12: mint *a;
                     13: {
                     14:        register unsigned char *ap, *limit;
                     15:        register int carry;
                     16: 
                     17:        ap = (unsigned char *)a->val;
                     18:        limit = ap + a->len;
                     19:        carry = 0;
                     20:        do {
                     21:                carry += *ap;
                     22:                *ap++ = carry % BASE;
                     23:                carry >>= L2BASE;
                     24:        } while (ap < limit);
                     25:        --ap;
                     26:        limit = a->val;
                     27:        if (*ap == NEFL) {
                     28:                while (*ap == NEFL && ap >= limit)
                     29:                        --ap;
                     30:                ++ap;
                     31:        } else {
                     32:                while (*ap == 0 && ap > limit)
                     33:                        --ap;
                     34:                if (*ap == NEFL)
                     35:                        ++ap;
                     36:        }
                     37:        a->len = 1 + ap - a->val;
                     38: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.