00001 00002 /****************************************************************************** 00003 * MODULE : base.hpp 00004 * DESCRIPTION: Implementation dispatcher for base expansion 00005 * COPYRIGHT : (C) 2009 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__HPP 00014 #define __MMX__BASE__HPP 00015 #include <algebramix/base_naive.hpp> 00016 00017 namespace mmx { 00018 #define Base_transformer(C,I) base_transformer_helper<C,I>::Baser 00019 #define Base_transformer_unsigned(C,I) \ 00020 base_transformer_helper_unsigned<C,I>::Baser 00021 00022 template<typename C, typename I> 00023 struct base_transformer_helper { 00024 typedef base_naive_transformer<C, std_base_naive<C,I> > Baser; 00025 }; 00026 00027 template<typename C, typename I> 00028 struct base_transformer_helper_unsigned { 00029 typedef typename Base_transformer(C,I) Baser; 00030 }; 00031 00032 } // namespace mmx 00033 #endif //__MMX__BASE__HPP