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