00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 template<typename T1, typename T2>
00025 arma_inline
00026 const GlueCube<T1, T2, glue_cube_schur>
00027 operator%
00028 (const BaseCube<typename T1::elem_type,T1>& X, const BaseCube<typename T1::elem_type,T2>& Y)
00029 {
00030 arma_extra_debug_sigprint();
00031
00032 return GlueCube<T1, T2, glue_cube_schur>(X.get_ref(), Y.get_ref());
00033 }
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 template<typename eT1, typename T1, typename eT2, typename T2>
00045 arma_inline
00046 Cube<typename promote_type<eT1,eT2>::result>
00047 operator%
00048 (const BaseCube<eT1,T1>& X, const BaseCube<eT2,T2>& Y)
00049 {
00050 arma_extra_debug_sigprint();
00051
00052 promote_type<eT1,eT2>::check();
00053
00054 const unwrap_cube<T1> tmp1(X.get_ref());
00055 const unwrap_cube<T2> tmp2(Y.get_ref());
00056
00057 const Cube<eT1>& A = tmp1.M;
00058 const Cube<eT2>& B = tmp2.M;
00059
00060 Cube< typename promote_type<eT1,eT2>::result > out;
00061 glue_cube_schur::apply_mixed(out, A, B);
00062
00063 return out;
00064 }
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 template<typename T1, typename T2>
00075 arma_inline
00076 const GlueCube<T1, T2, glue_cube_schur>
00077 operator%
00078 (const BaseCube<std::complex<double>,T1>& X, const BaseCube<std::complex<double>,T2>& Y)
00079 {
00080 arma_extra_debug_sigprint();
00081
00082 return GlueCube<T1, T2, glue_cube_schur>(X.get_ref(), Y.get_ref());
00083 }
00084
00085
00086
00087 template<typename T1, typename T2>
00088 arma_inline
00089 const GlueCube<T1, T2, glue_cube_schur>
00090 operator%
00091 (const BaseCube<std::complex<float>,T1>& X, const BaseCube<std::complex<float>,T2>& Y)
00092 {
00093 arma_extra_debug_sigprint();
00094
00095 return GlueCube<T1, T2, glue_cube_schur>(X.get_ref(), Y.get_ref());
00096 }
00097
00098
00099
00100 template<typename T1, typename T2>
00101 arma_inline
00102 const GlueCube<T1, T2, glue_cube_schur>
00103 operator%
00104 (const BaseCube<double,T1>& X, const BaseCube<double,T2>& Y)
00105 {
00106 arma_extra_debug_sigprint();
00107
00108 return GlueCube<T1, T2, glue_cube_schur>(X.get_ref(), Y.get_ref());
00109 }
00110
00111
00112
00113 template<typename T1, typename T2>
00114 arma_inline
00115 const GlueCube<T1, T2, glue_cube_schur>
00116 operator%
00117 (const BaseCube<float,T1>& X, const BaseCube<float,T2>& Y)
00118 {
00119 arma_extra_debug_sigprint();
00120
00121 return GlueCube<T1, T2, glue_cube_schur>(X.get_ref(), Y.get_ref());
00122 }
00123
00124
00125
00126 template<typename T1, typename T2>
00127 arma_inline
00128 const GlueCube<T1, T2, glue_cube_schur>
00129 operator%
00130 (const BaseCube<s32,T1>& X, const BaseCube<s32,T2>& Y)
00131 {
00132 arma_extra_debug_sigprint();
00133
00134 return GlueCube<T1, T2, glue_cube_schur>(X.get_ref(), Y.get_ref());
00135 }
00136
00137
00138
00139 template<typename T1, typename T2>
00140 arma_inline
00141 const GlueCube<T1, T2, glue_cube_schur>
00142 operator%
00143 (const BaseCube<u32,T1>& X, const BaseCube<u32,T2>& Y)
00144 {
00145 arma_extra_debug_sigprint();
00146
00147 return GlueCube<T1, T2, glue_cube_schur>(X.get_ref(), Y.get_ref());
00148 }
00149
00150
00151
00152 template<typename T1, typename T2>
00153 arma_inline
00154 const GlueCube<T1, T2, glue_cube_schur>
00155 operator%
00156 (const BaseCube<s16,T1>& X, const BaseCube<s16,T2>& Y)
00157 {
00158 arma_extra_debug_sigprint();
00159
00160 return GlueCube<T1, T2, glue_cube_schur>(X.get_ref(), Y.get_ref());
00161 }
00162
00163
00164
00165 template<typename T1, typename T2>
00166 arma_inline
00167 const GlueCube<T1, T2, glue_cube_schur>
00168 operator%
00169 (const BaseCube<u16,T1>& X, const BaseCube<u16,T2>& Y)
00170 {
00171 arma_extra_debug_sigprint();
00172
00173 return GlueCube<T1, T2, glue_cube_schur>(X.get_ref(), Y.get_ref());
00174 }
00175
00176
00177
00178 template<typename T1, typename T2>
00179 arma_inline
00180 const GlueCube<T1, T2, glue_cube_schur>
00181 operator%
00182 (const BaseCube<s8,T1>& X, const BaseCube<s8,T2>& Y)
00183 {
00184 arma_extra_debug_sigprint();
00185
00186 return GlueCube<T1, T2, glue_cube_schur>(X.get_ref(), Y.get_ref());
00187 }
00188
00189
00190
00191 template<typename T1, typename T2>
00192 arma_inline
00193 const GlueCube<T1, T2, glue_cube_schur>
00194 operator%
00195 (const BaseCube<u8,T1>& X, const BaseCube<u8,T2>& Y)
00196 {
00197 arma_extra_debug_sigprint();
00198
00199 return GlueCube<T1, T2, glue_cube_schur>(X.get_ref(), Y.get_ref());
00200 }
00201
00202
00203
00204