00001 00002 /****************************************************************************** 00003 * MODULE : base_double.hpp 00004 * DESCRIPTION: Change of base for integers over double 00005 * COPYRIGHT : (C) 2009 Joris van der Hoeven and Gregoire Lecerf 00006 ******************************************************************************* 00007 * This software falls under the GNU general public license and comes WITHOUT 00008 * ANY WARRANTY WHATSOEVER. See the file $TEXMACS_PATH/LICENSE for more details. 00009 * If you don't have this file, write to the Free Software Foundation, Inc., 00010 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00011 ******************************************************************************/ 00012 00013 #ifndef __MMX_BASE_DOUBLE_HPP 00014 #define __MMX_BASE_DOUBLE_HPP 00015 #include <numerix/integer.hpp> 00016 00017 namespace mmx { 00018 00019 /****************************************************************************** 00020 * Change of base over double floating point for base 2^cap 00021 ******************************************************************************/ 00022 00023 #if defined(__GNU_MP__) 00024 00025 void 00026 mpz_base_encode2 (double* dest, nat n, const mpz_t& src, unsigned long cap); 00027 00028 void 00029 mpz_base_decode2 (mpz_t& dest, const double* src, nat n, unsigned long cap); 00030 00031 #endif 00032 00033 } // namespace mmx 00034 #endif // __MMX_BASE_DOUBLE_HPP