00001 00002 /****************************************************************************** 00003 * MODULE : matrix_modular_integer.hpp 00004 * DESCRIPTION: modular matrices 00005 * COPYRIGHT : (C) 2007 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__MATRIX_MODULAR_INTEGER__HPP 00014 #define __MMX__MATRIX_MODULAR_INTEGER__HPP 00015 #include <numerix/modular_integer.hpp> 00016 #include <algebramix/matrix_modular.hpp> 00017 00018 namespace mmx { 00019 00020 DEFINE_VARIANT (matrix_modular_integer, 00021 matrix_naive) 00022 00023 template<typename V1, typename V2> 00024 struct matrix_variant_helper<modular<modulus<integer,V1>,V2> > { 00025 typedef matrix_naive Naive; 00026 typedef matrix_unrolled<2,Naive> Unrolled; 00027 typedef Unrolled Simd; 00028 typedef matrix_modular_integer MV; 00029 }; 00030 00031 } // namespace mmx 00032 00033 #endif //__MMX__MATRIX_MODULAR_INTEGER__HPP