$search
00001 // Copyright (C) 2008-2010 NICTA (www.nicta.com.au) 00002 // Copyright (C) 2008-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 op_cx_scalar_times 00020 { 00021 public: 00022 00023 template<typename T1> 00024 inline static void 00025 apply 00026 ( 00027 Mat< typename std::complex<typename T1::pod_type> >& out, 00028 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_times>& X 00029 ); 00030 00031 template<typename T1> 00032 inline static void 00033 apply 00034 ( 00035 Cube< typename std::complex<typename T1::pod_type> >& out, 00036 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_times>& X 00037 ); 00038 00039 }; 00040 00041 00042 00043 class op_cx_scalar_plus 00044 { 00045 public: 00046 00047 template<typename T1> 00048 inline static void 00049 apply 00050 ( 00051 Mat< typename std::complex<typename T1::pod_type> >& out, 00052 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_plus>& X 00053 ); 00054 00055 template<typename T1> 00056 inline static void 00057 apply 00058 ( 00059 Cube< typename std::complex<typename T1::pod_type> >& out, 00060 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_plus>& X 00061 ); 00062 00063 }; 00064 00065 00066 00067 class op_cx_scalar_minus_pre 00068 { 00069 public: 00070 00071 template<typename T1> 00072 inline static void 00073 apply 00074 ( 00075 Mat< typename std::complex<typename T1::pod_type> >& out, 00076 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_pre>& X 00077 ); 00078 00079 template<typename T1> 00080 inline static void 00081 apply 00082 ( 00083 Cube< typename std::complex<typename T1::pod_type> >& out, 00084 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_pre>& X 00085 ); 00086 00087 }; 00088 00089 00090 00091 class op_cx_scalar_minus_post 00092 { 00093 public: 00094 00095 template<typename T1> 00096 inline static void 00097 apply 00098 ( 00099 Mat< typename std::complex<typename T1::pod_type> >& out, 00100 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_post>& X 00101 ); 00102 00103 template<typename T1> 00104 inline static void 00105 apply 00106 ( 00107 Cube< typename std::complex<typename T1::pod_type> >& out, 00108 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_minus_post>& X 00109 ); 00110 00111 }; 00112 00113 00114 00115 class op_cx_scalar_div_pre 00116 { 00117 public: 00118 00119 template<typename T1> 00120 inline static void 00121 apply 00122 ( 00123 Mat< typename std::complex<typename T1::pod_type> >& out, 00124 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_pre>& X 00125 ); 00126 00127 template<typename T1> 00128 inline static void 00129 apply 00130 ( 00131 Cube< typename std::complex<typename T1::pod_type> >& out, 00132 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_pre>& X 00133 ); 00134 00135 }; 00136 00137 00138 00139 class op_cx_scalar_div_post 00140 { 00141 public: 00142 00143 template<typename T1> 00144 inline static void 00145 apply 00146 ( 00147 Mat< typename std::complex<typename T1::pod_type> >& out, 00148 const mtOp<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_post>& X 00149 ); 00150 00151 template<typename T1> 00152 inline static void 00153 apply 00154 ( 00155 Cube< typename std::complex<typename T1::pod_type> >& out, 00156 const mtOpCube<typename std::complex<typename T1::pod_type>, T1, op_cx_scalar_div_post>& X 00157 ); 00158 00159 }; 00160 00161 00162