$search
00001 // Copyright (C) 2009-2010 NICTA (www.nicta.com.au) 00002 // Copyright (C) 2009-2010 Conrad Sanderson 00003 // 00004 // This file is part of the Armadillo C++ library. 00005 // It is provided without any warranty of fitness 00006 // for any purpose. You can redistribute this file 00007 // and/or modify it under the terms of the GNU 00008 // Lesser General Public License (LGPL) as published 00009 // by the Free Software Foundation, either version 3 00010 // of the License or (at your option) any later version. 00011 // (see http://www.opensource.org/licenses for more info) 00012 00013 00016 00017 00018 00019 class glue_mixed_times 00020 { 00021 public: 00022 00023 template<typename T1, typename T2> 00024 inline static void apply(Mat<typename eT_promoter<T1,T2>::eT>& out, const mtGlue<typename eT_promoter<T1,T2>::eT, T1, T2, glue_mixed_times>& X); 00025 }; 00026 00027 00028 00029 class glue_mixed_plus 00030 { 00031 public: 00032 00033 template<typename T1, typename T2> 00034 inline static void apply(Mat<typename eT_promoter<T1,T2>::eT>& out, const mtGlue<typename eT_promoter<T1,T2>::eT, T1, T2, glue_mixed_plus>& X); 00035 00036 template<typename T1, typename T2> 00037 inline static void apply(Cube<typename eT_promoter<T1,T2>::eT>& out, const mtGlueCube<typename eT_promoter<T1,T2>::eT, T1, T2, glue_mixed_plus>& X); 00038 }; 00039 00040 00041 00042 class glue_mixed_minus 00043 { 00044 public: 00045 00046 template<typename T1, typename T2> 00047 inline static void apply(Mat<typename eT_promoter<T1,T2>::eT>& out, const mtGlue<typename eT_promoter<T1,T2>::eT, T1, T2, glue_mixed_minus>& X); 00048 00049 template<typename T1, typename T2> 00050 inline static void apply(Cube<typename eT_promoter<T1,T2>::eT>& out, const mtGlueCube<typename eT_promoter<T1,T2>::eT, T1, T2, glue_mixed_minus>& X); 00051 }; 00052 00053 00054 00055 class glue_mixed_div 00056 { 00057 public: 00058 00059 template<typename T1, typename T2> 00060 inline static void apply(Mat<typename eT_promoter<T1,T2>::eT>& out, const mtGlue<typename eT_promoter<T1,T2>::eT, T1, T2, glue_mixed_div>& X); 00061 00062 template<typename T1, typename T2> 00063 inline static void apply(Cube<typename eT_promoter<T1,T2>::eT>& out, const mtGlueCube<typename eT_promoter<T1,T2>::eT, T1, T2, glue_mixed_div>& X); 00064 }; 00065 00066 00067 00068 class glue_mixed_schur 00069 { 00070 public: 00071 00072 template<typename T1, typename T2> 00073 inline static void apply(Mat<typename eT_promoter<T1,T2>::eT>& out, const mtGlue<typename eT_promoter<T1,T2>::eT, T1, T2, glue_mixed_schur>& X); 00074 00075 template<typename T1, typename T2> 00076 inline static void apply(Cube<typename eT_promoter<T1,T2>::eT>& out, const mtGlueCube<typename eT_promoter<T1,T2>::eT, T1, T2, glue_mixed_schur>& X); 00077 }; 00078 00079 00080