algebramix_doc 0.3
/Users/mourrain/Devel/mmx/algebramix/include/algebramix/kronecker_integer.hpp
Go to the documentation of this file.
00001 
00002 /******************************************************************************
00003 * MODULE     : kronecker_integer.hpp
00004 * DESCRIPTION: Multiplication of integer polynomials
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_KRONECKER_INTEGER_HPP
00014 #define __MMX_KRONECKER_INTEGER_HPP
00015 #include <numerix/integer.hpp>
00016 
00017 namespace mmx {
00018 
00019 /******************************************************************************
00020 * Low level Kronecker multiplication for integers
00021 ******************************************************************************/
00022 
00023 xnat max_bit_size (const integer* src, nat n);
00024 void encode_kronecker (integer& dest, const integer* src, nat n, xnat bits);
00025 void decode_kronecker (integer* dest, nat n, xnat bits, const integer& src);
00026 void direct_kronecker (integer& dest, const integer* src, nat n, xnat bits);
00027 void inverse_kronecker (integer* dest, nat n, xnat bits, const integer& src);
00028 void mul_kronecker (integer* dest,
00029                     const integer* src1, nat n1, const integer* src2, nat n2);
00030 void square_kronecker (integer* dest, const integer* src1, nat n1);
00031 
00032 } // namespace mmx
00033 #endif // __MMX_KRONECKER_INTEGER_HPP
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines