Fn_misc

Functions

template<typename vec_type >
vec_type linspace (const typename vec_type::pod_type start, const typename vec_type::pod_type end, const u32 num)
 Generate a vector with 'num' elements. The values of the elements linearly increase from 'start' upto (and including) 'end'.
mat linspace (const double start, const double end, const u32 num)
template<typename eT , typename T1 >
const mtOp< u32, T1, op_findfind (const Base< eT, T1 > &X, const u32 k=0, const char *direction="first")
template<typename T1 >
arma_inline const T1 & real (const Base< typename T1::pod_type, T1 > &X)
template<typename T1 >
arma_inline const T1 & real (const BaseCube< typename T1::pod_type, T1 > &X)
template<typename T1 >
const mtOp< typename
T1::pod_type, T1, op_real
real (const Base< std::complex< typename T1::pod_type >, T1 > &X)
template<typename T1 >
Cube< typename T1::pod_type > real (const BaseCube< std::complex< typename T1::pod_type >, T1 > &X)
template<typename T1 >
const eOp< Mat< typename
T1::pod_type >, eop_zeros
imag (const Base< typename T1::pod_type, T1 > &X)
template<typename T1 >
const eOpCube< Cube< typename
T1::pod_type >, eop_cube_zeros
imag (const BaseCube< typename T1::pod_type, T1 > &X)
template<typename T1 >
const mtOp< typename
T1::pod_type, T1, op_imag
imag (const Base< std::complex< typename T1::pod_type >, T1 > &X)
template<typename T1 >
Cube< typename T1::pod_type > imag (const BaseCube< std::complex< typename T1::pod_type >, T1 > &X)
template<typename eT >
arma_float_only< eT >::result log_add (eT log_a, eT log_b)
template<typename T1 >
arma_inline const eOp< T1,
eop_log
log (const Base< typename T1::elem_type, T1 > &A)
template<typename T1 >
arma_inline const eOpCube< T1,
eop_cube_log
log (const BaseCube< typename T1::elem_type, T1 > &A)
template<typename T1 >
arma_inline const eOp< T1,
eop_log10
log10 (const Base< typename T1::elem_type, T1 > &A)
template<typename T1 >
arma_inline const eOpCube< T1,
eop_cube_log10
log10 (const BaseCube< typename T1::elem_type, T1 > &A)
template<typename T1 >
arma_inline const eOp< T1,
eop_exp
exp (const Base< typename T1::elem_type, T1 > &A)
template<typename T1 >
arma_inline const eOpCube< T1,
eop_cube_exp
exp (const BaseCube< typename T1::elem_type, T1 > &A)
template<typename T1 >
arma_inline const eOp< T1,
eop_abs
abs (const Base< typename T1::elem_type, T1 > &X)
template<typename T1 >
arma_inline const eOpCube< T1,
eop_cube_abs
abs (const BaseCube< typename T1::elem_type, T1 > &X)
template<typename T1 >
const mtOp< typename
T1::pod_type, T1, op_abs
abs (const Base< std::complex< typename T1::pod_type >, T1 > &X)
template<typename T1 >
Mat< typename T1::pod_type > abs (const BaseCube< std::complex< typename T1::pod_type >, T1 > &X)
template<typename T1 >
arma_inline const eOp< T1,
eop_abs
fabs (const Base< typename T1::pod_type, T1 > &X)
template<typename T1 >
arma_inline const eOpCube< T1,
eop_cube_abs
fabs (const BaseCube< typename T1::pod_type, T1 > &X)
template<typename T1 >
const mtOp< typename
T1::pod_type, T1, op_abs
fabs (const Base< std::complex< typename T1::pod_type >, T1 > &X)
template<typename T1 >
arma_inline Mat< typename
T1::pod_type > 
fabs (const BaseCube< std::complex< typename T1::pod_type >, T1 > &X)
template<typename T1 >
arma_inline const eOp< T1,
eop_square
square (const Base< typename T1::elem_type, T1 > &A)
template<typename T1 >
arma_inline const eOpCube< T1,
eop_cube_square
square (const BaseCube< typename T1::elem_type, T1 > &A)
template<typename T1 >
arma_inline const eOp< T1,
eop_sqrt
sqrt (const Base< typename T1::elem_type, T1 > &A)
template<typename T1 >
arma_inline const eOpCube< T1,
eop_cube_sqrt
sqrt (const BaseCube< typename T1::elem_type, T1 > &A)
template<typename T1 >
arma_inline const T1 & conj (const Base< typename T1::pod_type, T1 > &A)
template<typename T1 >
arma_inline const T1 & conj (const BaseCube< typename T1::pod_type, T1 > &A)
template<typename T1 >
arma_inline const eOp< T1,
eop_conj
conj (const Base< std::complex< typename T1::pod_type >, T1 > &A)
template<typename T1 >
arma_inline const eOpCube< T1,
eop_cube_conj
conj (const BaseCube< std::complex< typename T1::pod_type >, T1 > &A)
template<typename T1 >
arma_inline const T1 & conj (const eOp< T1, eop_conj > &A)
template<typename T1 >
arma_inline const T1 & conj (const eOpCube< T1, eop_cube_conj > &A)
template<typename T1 >
arma_inline const eOp< T1,
eop_pow
pow (const Base< typename T1::elem_type, T1 > &A, const typename T1::elem_type exponent)
template<typename T1 >
arma_inline const eOpCube< T1,
eop_cube_pow
pow (const BaseCube< typename T1::elem_type, T1 > &A, const typename T1::elem_type exponent)
template<typename T1 >
arma_inline const eOp< T1,
eop_pow
pow (const Base< typename T1::elem_type, T1 > &A, const typename T1::elem_type::value_type exponent)
template<typename T1 >
arma_inline const eOpCube< T1,
eop_cube_pow
pow (const BaseCube< typename T1::elem_type, T1 > &A, const typename T1::elem_type::value_type exponent)
template<typename T1 >
arma_inline const eOp< T1,
eop_pow_int
pow (const Base< typename T1::elem_type, T1 > &A, const int exponent)
template<typename T1 >
arma_inline const eOpCube< T1,
eop_cube_pow_int
pow (const BaseCube< typename T1::elem_type, T1 > &A, const int exponent)

Function Documentation

template<typename vec_type >
vec_type linspace ( const typename vec_type::pod_type  start,
const typename vec_type::pod_type  end,
const u32  num 
) [inline]

Generate a vector with 'num' elements. The values of the elements linearly increase from 'start' upto (and including) 'end'.

Definition at line 30 of file fn_misc.hpp.

References Mat< eT >::memptr().

00035   {
00036   arma_extra_debug_sigprint();
00037   
00038   arma_type_check< (is_Mat<vec_type>::value == false) >::apply();
00039   
00040   arma_debug_check( (num < 2), "linspace(): num must be >= 2");
00041   
00042   typedef typename vec_type::elem_type eT;
00043   typedef typename vec_type::pod_type   T;
00044   
00045   const u32 n_rows = (is_Row<vec_type>::value == true) ? 1   : num;
00046   const u32 n_cols = (is_Row<vec_type>::value == true) ? num : 1;
00047   
00048   Mat<eT> x(n_rows, n_cols);
00049   eT* x_mem = x.memptr();
00050   
00051   const u32 num_m1 = num - 1;
00052   
00053   if(is_non_integral<T>::value == true)
00054     {
00055     const T delta = (end-start)/T(num_m1);
00056     
00057     for(u32 i=0; i<num_m1; ++i)
00058       {
00059       x_mem[i] = eT(start + i*delta);
00060       }
00061     
00062     x_mem[num_m1] = eT(end);
00063     }
00064   else
00065     {
00066     const double delta = (end >= start) ? double(end-start)/double(num_m1) : -double(start-end)/double(num_m1);
00067     
00068     for(u32 i=0; i<num_m1; ++i)
00069       {
00070       x_mem[i] = eT(double(start) + i*delta);
00071       }
00072     
00073     x_mem[num_m1] = eT(end);
00074     }
00075   
00076   return x;
00077   }

mat linspace ( const double  start,
const double  end,
const u32  num 
) [inline]

Definition at line 83 of file fn_misc.hpp.

00084   {
00085   arma_extra_debug_sigprint();
00086   return linspace<mat>(start, end, num);
00087   }

template<typename eT , typename T1 >
const mtOp<u32, T1, op_find> find ( const Base< eT, T1 > &  X,
const u32  k = 0,
const char *  direction = "first" 
) [inline]

Definition at line 94 of file fn_misc.hpp.

References Base< elem_type, derived >::get_ref().

00095   {
00096   arma_extra_debug_sigprint();
00097   
00098   const char sig = direction[0];
00099   
00100   arma_debug_check( (sig != 'f' && sig != 'F' && sig != 'l' && sig != 'L'), "find(): 3rd input argument must be \"first\" or \"last\"" );
00101   
00102   const u32 type = (sig == 'f' || sig == 'F') ? 0 : 1;
00103   
00104   return mtOp<u32, T1, op_find>(X.get_ref(), k, type);
00105   }

template<typename T1 >
arma_inline const T1& real ( const Base< typename T1::pod_type, T1 > &  X  )  [inline]

Definition at line 115 of file fn_misc.hpp.

References Base< elem_type, derived >::get_ref().

Referenced by op_real::apply(), real(), and auxlib::svd().

00116   {
00117   arma_extra_debug_sigprint();
00118   
00119   return X.get_ref();
00120   }

template<typename T1 >
arma_inline const T1& real ( const BaseCube< typename T1::pod_type, T1 > &  X  )  [inline]

Definition at line 127 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00128   {
00129   arma_extra_debug_sigprint();
00130   
00131   return X.get_ref();
00132   }

template<typename T1 >
const mtOp<typename T1::pod_type, T1, op_real> real ( const Base< std::complex< typename T1::pod_type >, T1 > &  X  )  [inline]

Definition at line 139 of file fn_misc.hpp.

00140   {
00141   arma_extra_debug_sigprint();
00142   
00143   return mtOp<typename T1::pod_type, T1, op_real>( X.get_ref() );
00144   }

template<typename T1 >
Cube<typename T1::pod_type> real ( const BaseCube< std::complex< typename T1::pod_type >, T1 > &  X  )  [inline]

Definition at line 151 of file fn_misc.hpp.

References real().

00152   {
00153   arma_extra_debug_sigprint();
00154   
00155   typedef typename T1::pod_type T;
00156   
00157   const ProxyCube<T1> A(X.get_ref());
00158   
00159   Cube<T> out(A.n_rows, A.n_cols, A.n_slices);
00160   
00161   T* out_mem = out.memptr();
00162   
00163   for(u32 i=0; i<out.n_elem; ++i)
00164     {
00165     out_mem[i] = std::real(A[i]);
00166     }
00167   
00168   return out;
00169   }

template<typename T1 >
const eOp<Mat<typename T1::pod_type>, eop_zeros> imag ( const Base< typename T1::pod_type, T1 > &  X  )  [inline]

Definition at line 179 of file fn_misc.hpp.

References Base< elem_type, derived >::get_ref().

Referenced by op_imag::apply(), and imag().

00180   {
00181   arma_extra_debug_sigprint();
00182   
00183   const Proxy<T1> A(X.get_ref());
00184   
00185   return eOp<Mat<typename T1::pod_type>, eop_zeros>(A.n_rows, A.n_cols);
00186   }

template<typename T1 >
const eOpCube<Cube<typename T1::pod_type>, eop_cube_zeros> imag ( const BaseCube< typename T1::pod_type, T1 > &  X  )  [inline]

Definition at line 193 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00194   {
00195   arma_extra_debug_sigprint();
00196   
00197   const ProxyCube<T1> A(X.get_ref());
00198   
00199   return eOpCube<Cube<typename T1::pod_type>, eop_cube_zeros>(A.n_rows, A.n_cols, A.n_slices);
00200   }

template<typename T1 >
const mtOp<typename T1::pod_type, T1, op_imag> imag ( const Base< std::complex< typename T1::pod_type >, T1 > &  X  )  [inline]

Definition at line 207 of file fn_misc.hpp.

00208   {
00209   arma_extra_debug_sigprint();
00210   
00211   return mtOp<typename T1::pod_type, T1, op_imag>( X.get_ref() );
00212   }

template<typename T1 >
Cube<typename T1::pod_type> imag ( const BaseCube< std::complex< typename T1::pod_type >, T1 > &  X  )  [inline]

Definition at line 219 of file fn_misc.hpp.

References imag().

00220   {
00221   arma_extra_debug_sigprint();
00222   
00223   typedef typename T1::pod_type T;
00224   
00225   const ProxyCube<T1> A(X.get_ref());
00226   
00227   Cube<T> out(A.n_rows, A.n_cols, A.n_slices);
00228   
00229   T* out_mem = out.memptr();
00230   
00231   for(u32 i=0; i<out.n_elem; ++i)
00232     {
00233     out_mem[i] = std::imag(A[i]);
00234     }
00235   
00236   return out;
00237   }

template<typename eT >
arma_float_only<eT>::result log_add ( eT  log_a,
eT  log_b 
) [inline]

Definition at line 247 of file fn_misc.hpp.

References arma_isfinite(), exp(), and log().

00248   {
00249   if(log_a < log_b)
00250     {
00251     std::swap(log_a, log_b);
00252     }
00253   
00254   const eT negdelta = log_b - log_a;
00255   
00256   if( (negdelta < Math<eT>::log_min()) || (arma_isfinite(negdelta) == false) )
00257     {
00258     return log_a;
00259     }
00260   else
00261     {
00262     #if defined(ARMA_HAVE_LOG1P)
00263       return (log_a + log1p(std::exp(negdelta)));
00264     #else
00265       return (log_a + std::log(1.0 + std::exp(negdelta)));
00266     #endif
00267     }
00268   }

template<typename T1 >
arma_inline const eOp<T1, eop_log> log ( const Base< typename T1::elem_type, T1 > &  A  )  [inline]
template<typename T1 >
arma_inline const eOpCube<T1, eop_cube_log> log ( const BaseCube< typename T1::elem_type, T1 > &  A  )  [inline]

Definition at line 290 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00291   {
00292   arma_extra_debug_sigprint();
00293   
00294   return eOpCube<T1, eop_cube_log>(A.get_ref());
00295   }

template<typename T1 >
arma_inline const eOp<T1, eop_log10> log10 ( const Base< typename T1::elem_type, T1 > &  A  )  [inline]

Definition at line 305 of file fn_misc.hpp.

References Base< elem_type, derived >::get_ref().

Referenced by eop_aux::direct_eps(), eop_cube_core< eop_cube_type >::process(), and eop_core< eop_type >::process().

00306   {
00307   arma_extra_debug_sigprint();
00308   
00309   return eOp<T1, eop_log10>(A.get_ref());
00310   }

template<typename T1 >
arma_inline const eOpCube<T1, eop_cube_log10> log10 ( const BaseCube< typename T1::elem_type, T1 > &  A  )  [inline]

Definition at line 317 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00318   {
00319   arma_extra_debug_sigprint();
00320   
00321   return eOpCube<T1, eop_cube_log10>(A.get_ref());
00322   }

template<typename T1 >
arma_inline const eOp<T1, eop_exp> exp ( const Base< typename T1::elem_type, T1 > &  A  )  [inline]

Definition at line 332 of file fn_misc.hpp.

References Base< elem_type, derived >::get_ref().

Referenced by log_add(), eop_cube_core< eop_cube_type >::process(), eop_core< eop_type >::process(), and trunc_exp().

00333   {
00334   arma_extra_debug_sigprint();
00335   
00336   return eOp<T1, eop_exp>(A.get_ref());
00337   }

template<typename T1 >
arma_inline const eOpCube<T1, eop_cube_exp> exp ( const BaseCube< typename T1::elem_type, T1 > &  A  )  [inline]

Definition at line 344 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00345   {
00346   arma_extra_debug_sigprint();
00347   
00348   return eOpCube<T1, eop_cube_exp>(A.get_ref());
00349   }

template<typename T1 >
arma_inline const eOp<T1, eop_abs> abs ( const Base< typename T1::elem_type, T1 > &  X  )  [inline]
template<typename T1 >
arma_inline const eOpCube<T1, eop_cube_abs> abs ( const BaseCube< typename T1::elem_type, T1 > &  X  )  [inline]

Definition at line 372 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00373   {
00374   arma_extra_debug_sigprint();
00375   
00376   return eOpCube<T1, eop_cube_abs>(X.get_ref());
00377   }

template<typename T1 >
const mtOp<typename T1::pod_type, T1, op_abs> abs ( const Base< std::complex< typename T1::pod_type >, T1 > &  X  )  [inline]

Definition at line 384 of file fn_misc.hpp.

00385   {
00386   arma_extra_debug_sigprint();
00387   
00388   return mtOp<typename T1::pod_type, T1, op_abs>( X.get_ref() );
00389   }

template<typename T1 >
Mat<typename T1::pod_type> abs ( const BaseCube< std::complex< typename T1::pod_type >, T1 > &  X  )  [inline]

Definition at line 396 of file fn_misc.hpp.

References abs(), Cube< eT >::memptr(), and Cube< eT >::n_elem.

00397   {
00398   arma_extra_debug_sigprint();
00399   
00400   const ProxyCube<T1> A(X.get_ref());
00401 
00402   // if T1 is a complex matrix,
00403   // pod_type is the underlying type used by std::complex;
00404   // otherwise pod_type is the same as elem_type
00405   
00406   typedef typename T1::elem_type  in_eT;
00407   typedef typename T1::pod_type  out_eT;
00408 
00409   Cube<out_eT> out(A.n_rows, A.n_cols, A.n_slices);
00410   
00411   out_eT* out_mem = out.memptr();
00412   
00413   for(u32 i=0; i<out.n_elem; ++i)
00414     {
00415     out_mem[i] = std::abs(A[i]);
00416     }
00417   
00418   return out;
00419   }

template<typename T1 >
arma_inline const eOp<T1, eop_abs> fabs ( const Base< typename T1::pod_type, T1 > &  X  )  [inline]

Definition at line 429 of file fn_misc.hpp.

References Base< elem_type, derived >::get_ref().

00430   {
00431   arma_extra_debug_sigprint();
00432   
00433   return eOp<T1, eop_abs>(X.get_ref());
00434   }

template<typename T1 >
arma_inline const eOpCube<T1, eop_cube_abs> fabs ( const BaseCube< typename T1::pod_type, T1 > &  X  )  [inline]

Definition at line 441 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00442   {
00443   arma_extra_debug_sigprint();
00444   
00445   return eOpCube<T1, eop_cube_abs>(X.get_ref());
00446   }

template<typename T1 >
const mtOp<typename T1::pod_type, T1, op_abs> fabs ( const Base< std::complex< typename T1::pod_type >, T1 > &  X  )  [inline]

Definition at line 453 of file fn_misc.hpp.

00454   {
00455   arma_extra_debug_sigprint();
00456   
00457   return mtOp<typename T1::pod_type, T1, op_abs>( X.get_ref() );
00458   }

template<typename T1 >
arma_inline Mat<typename T1::pod_type> fabs ( const BaseCube< std::complex< typename T1::pod_type >, T1 > &  X  )  [inline]

Definition at line 465 of file fn_misc.hpp.

References abs().

00466   {
00467   arma_extra_debug_sigprint();
00468   
00469   return abs(X);
00470   }

template<typename T1 >
arma_inline const eOp<T1, eop_square> square ( const Base< typename T1::elem_type, T1 > &  A  )  [inline]

Definition at line 480 of file fn_misc.hpp.

References Base< elem_type, derived >::get_ref().

00481   {
00482   arma_extra_debug_sigprint();
00483   
00484   return eOp<T1, eop_square>(A.get_ref());
00485   }

template<typename T1 >
arma_inline const eOpCube<T1, eop_cube_square> square ( const BaseCube< typename T1::elem_type, T1 > &  A  )  [inline]

Definition at line 492 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00493   {
00494   arma_extra_debug_sigprint();
00495   
00496   return eOpCube<T1, eop_cube_square>(A.get_ref());
00497   }

template<typename T1 >
arma_inline const eOp<T1, eop_sqrt> sqrt ( const Base< typename T1::elem_type, T1 > &  A  )  [inline]
template<typename T1 >
arma_inline const eOpCube<T1, eop_cube_sqrt> sqrt ( const BaseCube< typename T1::elem_type, T1 > &  A  )  [inline]

Definition at line 519 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00520   {
00521   arma_extra_debug_sigprint();
00522   
00523   return eOpCube<T1, eop_cube_sqrt>(A.get_ref());
00524   }

template<typename T1 >
arma_inline const T1& conj ( const Base< typename T1::pod_type, T1 > &  A  )  [inline]
template<typename T1 >
arma_inline const T1& conj ( const BaseCube< typename T1::pod_type, T1 > &  A  )  [inline]

Definition at line 546 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00547   {
00548   arma_extra_debug_sigprint();
00549 
00550   return A.get_ref();
00551   }

template<typename T1 >
arma_inline const eOp<T1, eop_conj> conj ( const Base< std::complex< typename T1::pod_type >, T1 > &  A  )  [inline]

Definition at line 558 of file fn_misc.hpp.

00559   {
00560   arma_extra_debug_sigprint();
00561 
00562   return eOp<T1, eop_conj>(A.get_ref());
00563   }

template<typename T1 >
arma_inline const eOpCube<T1, eop_cube_conj> conj ( const BaseCube< std::complex< typename T1::pod_type >, T1 > &  A  )  [inline]

Definition at line 570 of file fn_misc.hpp.

00571   {
00572   arma_extra_debug_sigprint();
00573 
00574   return eOpCube<T1, eop_cube_conj>(A.get_ref());
00575   }

template<typename T1 >
arma_inline const T1& conj ( const eOp< T1, eop_conj > &  A  )  [inline]

Definition at line 582 of file fn_misc.hpp.

00583   {
00584   arma_extra_debug_sigprint();
00585   
00586   return A.m;
00587   }

template<typename T1 >
arma_inline const T1& conj ( const eOpCube< T1, eop_cube_conj > &  A  )  [inline]

Definition at line 594 of file fn_misc.hpp.

00595   {
00596   arma_extra_debug_sigprint();
00597   
00598   return A.m;
00599   }

template<typename T1 >
arma_inline const eOp<T1, eop_pow> pow ( const Base< typename T1::elem_type, T1 > &  A,
const typename T1::elem_type  exponent 
) [inline]

Definition at line 624 of file fn_misc.hpp.

References Base< elem_type, derived >::get_ref().

Referenced by norm_proxy(), norm_unwrap(), eop_aux::pow(), eop_aux::pow_int(), eop_cube_core< eop_cube_type >::process(), and eop_core< eop_type >::process().

00625   {
00626   arma_extra_debug_sigprint();
00627   
00628   return eOp<T1, eop_pow>(A.get_ref(), exponent);
00629   }

template<typename T1 >
arma_inline const eOpCube<T1, eop_cube_pow> pow ( const BaseCube< typename T1::elem_type, T1 > &  A,
const typename T1::elem_type  exponent 
) [inline]

Definition at line 636 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00637   {
00638   arma_extra_debug_sigprint();
00639   
00640   return eOpCube<T1, eop_cube_pow>(A.get_ref(), exponent);
00641   }

template<typename T1 >
arma_inline const eOp<T1, eop_pow> pow ( const Base< typename T1::elem_type, T1 > &  A,
const typename T1::elem_type::value_type  exponent 
) [inline]

Definition at line 650 of file fn_misc.hpp.

References Base< elem_type, derived >::get_ref().

00651   {
00652   arma_extra_debug_sigprint();
00653   
00654   typedef typename T1::elem_type eT;
00655   
00656   return eOp<T1, eop_pow>(A.get_ref(), eT(exponent));
00657   }

template<typename T1 >
arma_inline const eOpCube<T1, eop_cube_pow> pow ( const BaseCube< typename T1::elem_type, T1 > &  A,
const typename T1::elem_type::value_type  exponent 
) [inline]

Definition at line 664 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00665   {
00666   arma_extra_debug_sigprint();
00667   
00668   typedef typename T1::elem_type eT;
00669   
00670   return eOpCube<T1, eop_cube_pow>(A.get_ref(), eT(exponent));
00671   }

template<typename T1 >
arma_inline const eOp<T1, eop_pow_int> pow ( const Base< typename T1::elem_type, T1 > &  A,
const int  exponent 
) [inline]

Definition at line 683 of file fn_misc.hpp.

References Base< elem_type, derived >::get_ref().

00684   {
00685   arma_extra_debug_sigprint();
00686   
00687   if(exponent >= 0)
00688     {
00689     return eOp<T1, eop_pow_int>(A.get_ref(), exponent, 0);
00690     }
00691   else
00692     {
00693     return eOp<T1, eop_pow_int>(A.get_ref(), -exponent, 1);
00694     }
00695   }

template<typename T1 >
arma_inline const eOpCube<T1, eop_cube_pow_int> pow ( const BaseCube< typename T1::elem_type, T1 > &  A,
const int  exponent 
) [inline]

Definition at line 702 of file fn_misc.hpp.

References BaseCube< elem_type, derived >::get_ref().

00703   {
00704   arma_extra_debug_sigprint();
00705   
00706   if(exponent >= 0)
00707     {
00708     return eOpCube<T1, eop_cube_pow_int>(A.get_ref(),  exponent, 0);
00709     }
00710   else
00711     {
00712     return eOpCube<T1, eop_cube_pow_int>(A.get_ref(), -exponent, 1);
00713     }
00714   }