[BACK]Return to dump.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp / mpn / generic

Annotation of OpenXM_contrib/gmp/mpn/generic/dump.c, Revision 1.1.1.3

1.1.1.2   maekawa     1: /* THIS IS AN INTERNAL FUNCTION WITH A MUTABLE INTERFACE.  IT IS NOT SAFE TO
                      2:    CALL THIS FUNCTION DIRECTLY.  IN FACT, IT IS ALMOST GUARANTEED THAT THIS
                      3:    FUNCTION WILL CHANGE OR DISAPPEAR IN A FUTURE GNU MP RELEASE.
                      4:
                      5:
1.1.1.3 ! ohara       6: Copyright 1996, 2000, 2001, 2002 Free Software Foundation, Inc.
1.1.1.2   maekawa     7:
                      8: This file is part of the GNU MP Library.
                      9:
                     10: The GNU MP Library is free software; you can redistribute it and/or modify
                     11: it under the terms of the GNU Lesser General Public License as published by
                     12: the Free Software Foundation; either version 2.1 of the License, or (at your
                     13: option) any later version.
                     14:
                     15: The GNU MP Library is distributed in the hope that it will be useful, but
                     16: WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
                     17: or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
                     18: License for more details.
                     19:
                     20: You should have received a copy of the GNU Lesser General Public License
                     21: along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
                     22: the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
                     23: MA 02111-1307, USA.
                     24: */
                     25:
1.1       maekawa    26: #include <stdio.h>
                     27: #include "gmp.h"
                     28: #include "gmp-impl.h"
                     29:
1.1.1.3 ! ohara      30: #if GMP_NUMB_BITS % 4 == 0
1.1       maekawa    31: void
1.1.1.3 ! ohara      32: mpn_dump (mp_srcptr ptr, mp_size_t n)
1.1       maekawa    33: {
1.1.1.3 ! ohara      34:   MPN_NORMALIZE (ptr, n);
1.1.1.2   maekawa    35:
1.1.1.3 ! ohara      36:   if (n == 0)
1.1       maekawa    37:     printf ("0\n");
1.1.1.2   maekawa    38:   else
                     39:     {
1.1.1.3 ! ohara      40:       n--;
        !            41: #if _LONG_LONG_LIMB
        !            42:       if ((ptr[n] >> GMP_LIMB_BITS / 2) != 0)
1.1.1.2   maekawa    43:        {
1.1.1.3 ! ohara      44:          printf ("%lX", (unsigned long) (ptr[n] >> GMP_LIMB_BITS / 2));
        !            45:          printf ("%0*lX", (GMP_LIMB_BITS / 2 / 4), (unsigned long) ptr[n]);
1.1.1.2   maekawa    46:        }
                     47:       else
1.1.1.3 ! ohara      48: #endif
        !            49:        printf ("%lX", (unsigned long) ptr[n]);
1.1.1.2   maekawa    50:
1.1.1.3 ! ohara      51:       while (n)
1.1.1.2   maekawa    52:        {
1.1.1.3 ! ohara      53:          n--;
        !            54: #if _LONG_LONG_LIMB
        !            55:          printf ("%0*lX", (GMP_NUMB_BITS - GMP_LIMB_BITS / 2) / 4,
        !            56:                  (unsigned long) (ptr[n] >> GMP_LIMB_BITS / 2));
        !            57:          printf ("%0*lX", GMP_LIMB_BITS / 2 / 4, (unsigned long) ptr[n]);
        !            58: #else
        !            59:          printf ("%0*lX", GMP_NUMB_BITS / 4, (unsigned long) ptr[n]);
        !            60: #endif
1.1.1.2   maekawa    61:        }
                     62:       printf ("\n");
                     63:     }
1.1       maekawa    64: }
1.1.1.3 ! ohara      65:
        !            66: #else
        !            67:
        !            68: static void
        !            69: mpn_recdump (mp_ptr p, mp_size_t n)
        !            70: {
        !            71:   mp_limb_t lo;
        !            72:   if (n != 0)
        !            73:     {
        !            74:       lo = p[0] & 0xf;
        !            75:       mpn_rshift (p, p, n, 4);
        !            76:       mpn_recdump (p, n);
        !            77:       printf ("%lX", lo);
        !            78:     }
        !            79: }
        !            80:
        !            81: void
        !            82: mpn_dump (mp_srcptr p, mp_size_t n)
        !            83: {
        !            84:   mp_ptr tp;
        !            85:   TMP_DECL (marker);
        !            86:   TMP_MARK (marker);
        !            87:   tp = TMP_ALLOC_LIMBS (n);
        !            88:   MPN_COPY (tp, p, n);
        !            89:   TMP_FREE (marker);
        !            90: }
        !            91:
        !            92: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>