$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 // trigonometric functions: 00019 // cos family: cos, acos, cosh, acosh 00020 // sin family: sin, asin, sinh, asinh 00021 // tan family: tan, atan, tanh, atanh 00022 00023 00024 // 00025 // cos 00026 00027 template<typename T1> 00028 arma_inline 00029 const eOp<T1, eop_cos> 00030 cos(const Base<typename T1::elem_type,T1>& A) 00031 { 00032 arma_extra_debug_sigprint(); 00033 00034 return eOp<T1, eop_cos>(A.get_ref()); 00035 } 00036 00037 00038 00039 template<typename T1> 00040 arma_inline 00041 const eOpCube<T1, eop_cos> 00042 cos(const BaseCube<typename T1::elem_type,T1>& A) 00043 { 00044 arma_extra_debug_sigprint(); 00045 00046 return eOpCube<T1, eop_cos>(A.get_ref()); 00047 } 00048 00049 00050 00051 // 00052 // acos 00053 00054 template<typename T1> 00055 arma_inline 00056 const eOp<T1, eop_acos> 00057 acos(const Base<typename T1::elem_type,T1>& A) 00058 { 00059 arma_extra_debug_sigprint(); 00060 00061 return eOp<T1, eop_acos>(A.get_ref()); 00062 } 00063 00064 00065 00066 template<typename T1> 00067 arma_inline 00068 const eOpCube<T1, eop_acos> 00069 acos(const BaseCube<typename T1::elem_type,T1>& A) 00070 { 00071 arma_extra_debug_sigprint(); 00072 00073 return eOpCube<T1, eop_acos>(A.get_ref()); 00074 } 00075 00076 00077 00078 // 00079 // cosh 00080 00081 template<typename T1> 00082 arma_inline 00083 const eOp<T1, eop_cosh> 00084 cosh(const Base<typename T1::elem_type,T1>& A) 00085 { 00086 arma_extra_debug_sigprint(); 00087 00088 return eOp<T1, eop_cosh>(A.get_ref()); 00089 } 00090 00091 00092 00093 template<typename T1> 00094 arma_inline 00095 const eOpCube<T1, eop_cosh> 00096 cosh(const BaseCube<typename T1::elem_type,T1>& A) 00097 { 00098 arma_extra_debug_sigprint(); 00099 00100 return eOpCube<T1, eop_cosh>(A.get_ref()); 00101 } 00102 00103 00104 00105 // 00106 // acosh 00107 00108 template<typename T1> 00109 arma_inline 00110 const eOp<T1, eop_acosh> 00111 acosh(const Base<typename T1::elem_type,T1>& A) 00112 { 00113 arma_extra_debug_sigprint(); 00114 00115 return eOp<T1, eop_acosh>(A.get_ref()); 00116 } 00117 00118 00119 00120 template<typename T1> 00121 arma_inline 00122 const eOpCube<T1, eop_acosh> 00123 acosh(const BaseCube<typename T1::elem_type,T1>& A) 00124 { 00125 arma_extra_debug_sigprint(); 00126 00127 return eOpCube<T1, eop_acosh>(A.get_ref()); 00128 } 00129 00130 00131 00132 // 00133 // sin 00134 00135 template<typename T1> 00136 arma_inline 00137 const eOp<T1, eop_sin> 00138 sin(const Base<typename T1::elem_type,T1>& A) 00139 { 00140 arma_extra_debug_sigprint(); 00141 00142 return eOp<T1, eop_sin>(A.get_ref()); 00143 } 00144 00145 00146 00147 template<typename T1> 00148 arma_inline 00149 const eOpCube<T1, eop_sin> 00150 sin(const BaseCube<typename T1::elem_type,T1>& A) 00151 { 00152 arma_extra_debug_sigprint(); 00153 00154 return eOpCube<T1, eop_sin>(A.get_ref()); 00155 } 00156 00157 00158 00159 // 00160 // asin 00161 00162 template<typename T1> 00163 arma_inline 00164 const eOp<T1, eop_asin> 00165 asin(const Base<typename T1::elem_type,T1>& A) 00166 { 00167 arma_extra_debug_sigprint(); 00168 00169 return eOp<T1, eop_asin>(A.get_ref()); 00170 } 00171 00172 00173 00174 template<typename T1> 00175 arma_inline 00176 const eOpCube<T1, eop_asin> 00177 asin(const BaseCube<typename T1::elem_type,T1>& A) 00178 { 00179 arma_extra_debug_sigprint(); 00180 00181 return eOpCube<T1, eop_asin>(A.get_ref()); 00182 } 00183 00184 00185 00186 // 00187 // sinh 00188 00189 template<typename T1> 00190 arma_inline 00191 const eOp<T1, eop_sinh> 00192 sinh(const Base<typename T1::elem_type,T1>& A) 00193 { 00194 arma_extra_debug_sigprint(); 00195 00196 return eOp<T1, eop_sinh>(A.get_ref()); 00197 } 00198 00199 00200 00201 template<typename T1> 00202 arma_inline 00203 const eOpCube<T1, eop_sinh> 00204 sinh(const BaseCube<typename T1::elem_type,T1>& A) 00205 { 00206 arma_extra_debug_sigprint(); 00207 00208 return eOpCube<T1, eop_sinh>(A.get_ref()); 00209 } 00210 00211 00212 00213 // 00214 // asinh 00215 00216 template<typename T1> 00217 arma_inline 00218 const eOp<T1, eop_asinh> 00219 asinh(const Base<typename T1::elem_type,T1>& A) 00220 { 00221 arma_extra_debug_sigprint(); 00222 00223 return eOp<T1, eop_asinh>(A.get_ref()); 00224 } 00225 00226 00227 00228 template<typename T1> 00229 arma_inline 00230 const eOpCube<T1, eop_asinh> 00231 asinh(const BaseCube<typename T1::elem_type,T1>& A) 00232 { 00233 arma_extra_debug_sigprint(); 00234 00235 return eOpCube<T1, eop_asinh>(A.get_ref()); 00236 } 00237 00238 00239 00240 // 00241 // tan 00242 00243 template<typename T1> 00244 arma_inline 00245 const eOp<T1, eop_tan> 00246 tan(const Base<typename T1::elem_type,T1>& A) 00247 { 00248 arma_extra_debug_sigprint(); 00249 00250 return eOp<T1, eop_tan>(A.get_ref()); 00251 } 00252 00253 00254 00255 template<typename T1> 00256 arma_inline 00257 const eOpCube<T1, eop_tan> 00258 tan(const BaseCube<typename T1::elem_type,T1>& A) 00259 { 00260 arma_extra_debug_sigprint(); 00261 00262 return eOpCube<T1, eop_tan>(A.get_ref()); 00263 } 00264 00265 00266 00267 // 00268 // atan 00269 00270 template<typename T1> 00271 arma_inline 00272 const eOp<T1, eop_atan> 00273 atan(const Base<typename T1::elem_type,T1>& A) 00274 { 00275 arma_extra_debug_sigprint(); 00276 00277 return eOp<T1, eop_atan>(A.get_ref()); 00278 } 00279 00280 00281 00282 template<typename T1> 00283 arma_inline 00284 const eOpCube<T1, eop_atan> 00285 atan(const BaseCube<typename T1::elem_type,T1>& A) 00286 { 00287 arma_extra_debug_sigprint(); 00288 00289 return eOpCube<T1, eop_atan>(A.get_ref()); 00290 } 00291 00292 00293 00294 // 00295 // tanh 00296 00297 template<typename T1> 00298 arma_inline 00299 const eOp<T1, eop_tanh> 00300 tanh(const Base<typename T1::elem_type,T1>& A) 00301 { 00302 arma_extra_debug_sigprint(); 00303 00304 return eOp<T1, eop_tanh>(A.get_ref()); 00305 } 00306 00307 00308 00309 template<typename T1> 00310 arma_inline 00311 const eOpCube<T1, eop_tanh> 00312 tanh(const BaseCube<typename T1::elem_type,T1>& A) 00313 { 00314 arma_extra_debug_sigprint(); 00315 00316 return eOpCube<T1, eop_tanh>(A.get_ref()); 00317 } 00318 00319 00320 00321 // 00322 // atanh 00323 00324 template<typename T1> 00325 arma_inline 00326 const eOp<T1, eop_atanh> 00327 atanh(const Base<typename T1::elem_type,T1>& A) 00328 { 00329 arma_extra_debug_sigprint(); 00330 00331 return eOp<T1, eop_atanh>(A.get_ref()); 00332 } 00333 00334 00335 00336 template<typename T1> 00337 arma_inline 00338 const eOpCube<T1, eop_atanh> 00339 atanh(const BaseCube<typename T1::elem_type,T1>& A) 00340 { 00341 arma_extra_debug_sigprint(); 00342 00343 return eOpCube<T1, eop_atanh>(A.get_ref()); 00344 } 00345 00346 00347