59 std::memcpy(dest, src, n_elem*
sizeof(eT));
130 template<
typename out_eT,
typename in_eT>
150 template<
typename out_eT,
typename in_T>
157 const std::complex<in_T>& in,
163 out = out_eT( in.real() );
168 template<
typename out_T,
typename in_T>
174 std::complex<out_T>& out,
175 const std::complex< in_T>& in
178 typedef std::complex<out_T> out_eT;
185 template<
typename out_eT,
typename in_eT>
193 for(i=0, j=1; j<n_elem; i+=2, j+=2)
195 dest[i] = out_eT( src[i] );
196 dest[j] = out_eT( src[j] );
201 dest[i] = out_eT( src[i] );
207 template<
typename out_eT,
typename in_eT>
215 for(i=0, j=1; j<n_elem; i+=2, j+=2)
229 template<
typename eT>
237 for(i=0, j=1; j<n_elem; i+=2, j+=2)
251 template<
typename eT>
259 for(i=0, j=1; j<n_elem; i+=2, j+=2)
273 template<
typename eT>
281 for(i=0, j=1; j<n_elem; i+=2, j+=2)
295 template<
typename eT>
303 for(i=0, j=1; j<n_elem; i+=2, j+=2)
317 template<
typename eT>
325 for(i=0, j=1; j<n_elem; i+=2, j+=2)
339 template<
typename eT>
347 for(i=0, j=1; j<n_elem; i+=2, j+=2)
361 template<
typename eT>
369 for(i=0, j=1; j<n_elem; i+=2, j+=2)
383 template<
typename eT>
391 for(i=0, j=1; j<n_elem; i+=2, j+=2)
405 template<
typename eT>
413 for(i=0, j=1; j<n_elem; i+=2, j+=2)
427 template<
typename eT>
439 for(i=0, j=1; j<n_elem; i+=2, j+=2)
455 template<
typename eT>
467 for(i=0, j=1; j<n_elem; i+=2, j+=2)
483 template<
typename eT>
492 for(i=0, j=1; j<n_elem; i+=2, j+=2)
494 const eT val_i = src[i];
495 const eT val_j = src[j];
517 template<
typename eT>
530 for(i=0, j=1; j<n_elem; i+=2, j+=2)
547 template<
typename eT>
560 for(i=0, j=1; j<n_elem; i+=2, j+=2)
562 const eT tmp_i = src[i];
563 const eT tmp_j = src[j];
565 acc += tmp_i * tmp_i;
566 acc += tmp_j * tmp_j;
571 const eT tmp_i = src[i];
573 acc += tmp_i * tmp_i;
593 for(i=0, j=1; j<n_elem; i+=2, j+=2)
598 acc += tmp_i * tmp_i;
599 acc += tmp_j * tmp_j;
606 acc += tmp_i * tmp_i;
615 template<
typename eT>
628 for(i=0, j=1; j<n_elem; i+=2, j+=2)
645 template<
typename eT>
658 for(i=1, j=2; j<n_elem; i+=2, j+=2)
663 if(max_val < tmp_i) { max_val = tmp_i; }
664 if(max_val < tmp_j) { max_val = tmp_j; }
671 if(max_val < tmp_i) { max_val = tmp_i; }
680 template<
typename eT>
693 for(i=1, j=2; j<n_elem; i+=2, j+=2)
698 if(min_val > tmp_i) { min_val = tmp_i; }
699 if(min_val > tmp_j) { min_val = tmp_j; }
706 if(min_val > tmp_i) { min_val = tmp_i; }
arma_hot static arma_pure get_pod_type< eT >::result norm_max(const eT *src, const uword n_elem)
arma_hot static arma_inline void copy(eT *dest, const eT *src, const uword n_elem)
static arma_hot void inplace_minus(eT *dest, const eT *src, const uword n_elem)
arma_inline const eOp< T1, eop_sqrt > sqrt(const Base< typename T1::elem_type, T1 > &A)
arma_hot static arma_inline void convert_cx_scalar(out_eT &out, const in_eT &in, const typename arma_not_cx< out_eT >::result *junk1=0, const typename arma_not_cx< in_eT >::result *junk2=0)
static arma_hot void inplace_mul(eT *dest, const eT *src, const uword n_elem)
arma_hot static arma_pure get_pod_type< eT >::result norm_min(const eT *src, const uword n_elem)
arma_hot static arma_pure eT product(const eT *src, const uword n_elem)
static void copy_big(eT *dest, const eT *src, const uword n_elem)
static arma_hot void inplace_plus(eT *dest, const eT *src, const uword n_elem)
static arma_hot void inplace_div(eT *dest, const eT *src, const uword n_elem)
static arma_hot void convert_cx(out_eT *dest, const in_eT *src, const uword n_elem)
static arma_hot void inplace_set(eT *dest, const eT val, const uword n_elem)
#define arma_ignore(variable)
static arma_hot void convert(out_eT *dest, const in_eT *src, const uword n_elem)
arma_hot static arma_pure get_pod_type< eT >::result norm_1(const eT *src, const uword n_elem)
arma_inline const eOp< T1, eop_abs > abs(const Base< typename T1::elem_type, T1 > &X, const typename arma_not_cx< typename T1::elem_type >::result *junk=0)
arma_inline const eOp< T1, eop_pow > pow(const Base< typename T1::elem_type, T1 > &A, const typename T1::elem_type exponent)
arma_hot static arma_pure get_pod_type< eT >::result norm_k(const eT *src, const uword n_elem, const int k)
arma_hot static arma_pure bool is_finite(const eT *src, const uword n_elem)
arma_hot static arma_pure eT accumulate(const eT *src, const uword n_elem)
arma_hot static arma_pure eT norm_2(const eT *src, const uword n_elem, const typename arma_not_cx< eT >::result *junk=0)
arma_inline bool arma_isfinite(eT val)