simplification
This commit is contained in:
@@ -28,10 +28,6 @@ class arrayops
|
||||
arma_inline static void
|
||||
copy(eT* dest, const eT* src, const uword n_elem);
|
||||
|
||||
template<typename eT>
|
||||
arma_cold inline static void
|
||||
copy_small(eT* dest, const eT* src, const uword n_elem);
|
||||
|
||||
template<typename eT>
|
||||
inline static void
|
||||
fill_zeros(eT* dest, const uword n_elem);
|
||||
|
||||
@@ -28,53 +28,7 @@ arrayops::copy(eT* dest, const eT* src, const uword n_elem)
|
||||
{
|
||||
if( (dest == src) || (n_elem == 0) ) { return; }
|
||||
|
||||
if(is_cx<eT>::no)
|
||||
{
|
||||
if(n_elem <= 9)
|
||||
{
|
||||
arrayops::copy_small(dest, src, n_elem);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::memcpy(dest, src, n_elem*sizeof(eT));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::memcpy(dest, src, n_elem*sizeof(eT));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
template<typename eT>
|
||||
arma_cold
|
||||
inline
|
||||
void
|
||||
arrayops::copy_small(eT* dest, const eT* src, const uword n_elem)
|
||||
{
|
||||
switch(n_elem)
|
||||
{
|
||||
case 9: dest[ 8] = src[ 8];
|
||||
// fallthrough
|
||||
case 8: dest[ 7] = src[ 7];
|
||||
// fallthrough
|
||||
case 7: dest[ 6] = src[ 6];
|
||||
// fallthrough
|
||||
case 6: dest[ 5] = src[ 5];
|
||||
// fallthrough
|
||||
case 5: dest[ 4] = src[ 4];
|
||||
// fallthrough
|
||||
case 4: dest[ 3] = src[ 3];
|
||||
// fallthrough
|
||||
case 3: dest[ 2] = src[ 2];
|
||||
// fallthrough
|
||||
case 2: dest[ 1] = src[ 1];
|
||||
// fallthrough
|
||||
case 1: dest[ 0] = src[ 0];
|
||||
// fallthrough
|
||||
default: ;
|
||||
}
|
||||
std::memcpy(dest, src, n_elem*sizeof(eT));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user