#include <syslib_proto.hpp>
Static Public Member Functions | |
| template<typename eT > | |
| static arma_hot void | copy_elem (eT *dest, const eT *src, const u32 n_elem) |
| template<typename out_eT , typename in_eT > | |
| static arma_hot void | copy_and_convert_elem (out_eT *dest, const in_eT *src, const u32 n_elem) |
| template<typename out_eT , typename in_eT > | |
| arma_hot static arma_inline void | convert_cx_scalar (out_eT &out, const in_eT &in) |
| template<typename out_eT , typename in_T > | |
| arma_hot static arma_inline void | convert_cx_scalar (out_eT &out, const std::complex< in_T > &in) |
| template<typename out_T , typename in_T > | |
| arma_hot static arma_inline void | convert_cx_scalar (std::complex< out_T > &out, const std::complex< in_T > &in) |
| template<typename out_eT , typename in_eT > | |
| static arma_hot void | copy_and_convert_cx_elem (out_eT *dest, const in_eT *src, const u32 n_elem) |
Definition at line 21 of file syslib_proto.hpp.
| static arma_hot void syslib::copy_elem | ( | eT * | dest, | |
| const eT * | src, | |||
| const u32 | n_elem | |||
| ) | [inline, static] |
Definition at line 30 of file syslib_proto.hpp.
Referenced by op_reshape::apply(), op_trans::apply_noalias(), Cube< eT >::Cube(), subview< eT >::extract(), Mat< eT >::init(), Cube< eT >::init(), Mat< eT >::Mat(), subview< eT >::operator=(), podarray< eT >::operator=(), subview< eT >::operator_equ_mat(), podarray< eT >::podarray(), auxlib::solve_od(), and auxlib::solve_ud().
{
#if !defined(__OPTIMIZE__)
{
std::memcpy(dest, src, n_elem*sizeof(eT));
}
#else
{
switch(n_elem)
{
case 0:
break;
case 1:
*dest = *src;
break;
case 2:
dest[0] = src[0];
dest[1] = src[1];
break;
case 3:
dest[0] = src[0];
dest[1] = src[1];
dest[2] = src[2];
break;
case 4:
dest[0] = src[0];
dest[1] = src[1];
dest[2] = src[2];
dest[3] = src[3];
break;
default:
if( n_elem <= (128/sizeof(eT)) )
{
u32 i,j;
for(i=0, j=1; j<n_elem; i+=2, j+=2)
{
dest[i] = src[i];
dest[j] = src[j];
}
if(i < n_elem)
{
dest[i] = src[i];
}
}
else
{
std::memcpy(dest, src, n_elem*sizeof(eT));
}
}
}
#endif
}
| static arma_hot void syslib::copy_and_convert_elem | ( | out_eT * | dest, | |
| const in_eT * | src, | |||
| const u32 | n_elem | |||
| ) | [inline, static] |
Definition at line 97 of file syslib_proto.hpp.
Referenced by conv_to< itpp::Vec< out_eT > >::from(), conv_to< itpp::Mat< out_eT > >::from(), conv_to< Cube< out_eT > >::from(), conv_to< Col< out_eT > >::from(), conv_to< Row< out_eT > >::from(), and conv_to< Mat< out_eT > >::from().
{
u32 i,j;
for(i=0, j=1; j<n_elem; i+=2, j+=2)
{
dest[i] = out_eT( src[i] );
dest[j] = out_eT( src[j] );
}
if(i < n_elem)
{
dest[i] = out_eT( src[i] );
}
}
| arma_hot static arma_inline void syslib::convert_cx_scalar | ( | out_eT & | out, | |
| const in_eT & | in | |||
| ) | [inline, static] |
Definition at line 124 of file syslib_proto.hpp.
Referenced by copy_and_convert_cx_elem(), conv_to< std::vector< out_eT > >::from(), conv_to< Col< out_eT > >::from(), conv_to< Row< out_eT > >::from(), conv_to< Mat< out_eT > >::from(), and conv_to< out_eT >::from().
{
out = out_eT(in);
}
| arma_hot static arma_inline void syslib::convert_cx_scalar | ( | out_eT & | out, | |
| const std::complex< in_T > & | in | |||
| ) | [inline, static] |
Definition at line 136 of file syslib_proto.hpp.
{
out = out_eT( in.real() );
}
| arma_hot static arma_inline void syslib::convert_cx_scalar | ( | std::complex< out_T > & | out, | |
| const std::complex< in_T > & | in | |||
| ) | [inline, static] |
Definition at line 148 of file syslib_proto.hpp.
{
typedef std::complex<out_T> out_eT;
out = out_eT(in);
}
| static arma_hot void syslib::copy_and_convert_cx_elem | ( | out_eT * | dest, | |
| const in_eT * | src, | |||
| const u32 | n_elem | |||
| ) | [inline, static] |
Definition at line 162 of file syslib_proto.hpp.
References convert_cx_scalar().
Referenced by conv_to< itpp::Vec< out_eT > >::from(), conv_to< itpp::Mat< out_eT > >::from(), conv_to< Cube< out_eT > >::from(), conv_to< Col< out_eT > >::from(), conv_to< Row< out_eT > >::from(), and conv_to< Mat< out_eT > >::from().
{
u32 i,j;
for(i=0, j=1; j<n_elem; i+=2, j+=2)
{
convert_cx_scalar( dest[i], src[i] );
convert_cx_scalar( dest[j], src[j] );
}
if(i < n_elem)
{
convert_cx_scalar( dest[i], src[i] );
}
}