本文整理汇总了C++中TA::memptr方法的典型用法代码示例。如果您正苦于以下问题:C++ TA::memptr方法的具体用法?C++ TA::memptr怎么用?C++ TA::memptr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TA
的用法示例。
在下文中一共展示了TA::memptr方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
arma_hot
inline
void
op_strans::apply_noalias(Mat<eT>& out, const TA& A)
{
arma_extra_debug_sigprint();
const uword A_n_cols = A.n_cols;
const uword A_n_rows = A.n_rows;
out.set_size(A_n_cols, A_n_rows);
if( (TA::is_row) || (TA::is_col) || (A_n_cols == 1) || (A_n_rows == 1) )
{
arrayops::copy( out.memptr(), A.memptr(), A.n_elem );
}
else
{
if( (A_n_rows <= 4) && (A_n_rows == A_n_cols) )
{
op_strans::apply_noalias_tinysq(out, A);
}
else
{
for(uword k=0; k < A_n_cols; ++k)
{
uword i, j;
const eT* colptr = A.colptr(k);
for(i=0, j=1; j < A_n_rows; i+=2, j+=2)
{
const eT tmp_i = colptr[i];
const eT tmp_j = colptr[j];
out.at(k, i) = tmp_i;
out.at(k, j) = tmp_j;
}
if(i < A_n_rows)
{
out.at(k, i) = colptr[i];
}
}
}
}
}
示例2: switch
arma_hot
inline
void
op_strans2::apply_noalias_tinysq(Mat<eT>& out, const TA& A, const eT val)
{
const eT* Am = A.memptr();
eT* outm = out.memptr();
switch(A.n_rows)
{
case 1:
{
outm[0] = val * Am[0];
}
break;
case 2:
{
outm[pos<false,0,0>::n2] = val * Am[pos<true,0,0>::n2];
outm[pos<false,1,0>::n2] = val * Am[pos<true,1,0>::n2];
outm[pos<false,0,1>::n2] = val * Am[pos<true,0,1>::n2];
outm[pos<false,1,1>::n2] = val * Am[pos<true,1,1>::n2];
}
break;
case 3:
{
outm[pos<false,0,0>::n3] = val * Am[pos<true,0,0>::n3];
outm[pos<false,1,0>::n3] = val * Am[pos<true,1,0>::n3];
outm[pos<false,2,0>::n3] = val * Am[pos<true,2,0>::n3];
outm[pos<false,0,1>::n3] = val * Am[pos<true,0,1>::n3];
outm[pos<false,1,1>::n3] = val * Am[pos<true,1,1>::n3];
outm[pos<false,2,1>::n3] = val * Am[pos<true,2,1>::n3];
outm[pos<false,0,2>::n3] = val * Am[pos<true,0,2>::n3];
outm[pos<false,1,2>::n3] = val * Am[pos<true,1,2>::n3];
outm[pos<false,2,2>::n3] = val * Am[pos<true,2,2>::n3];
}
break;
case 4:
{
outm[pos<false,0,0>::n4] = val * Am[pos<true,0,0>::n4];
outm[pos<false,1,0>::n4] = val * Am[pos<true,1,0>::n4];
outm[pos<false,2,0>::n4] = val * Am[pos<true,2,0>::n4];
outm[pos<false,3,0>::n4] = val * Am[pos<true,3,0>::n4];
outm[pos<false,0,1>::n4] = val * Am[pos<true,0,1>::n4];
outm[pos<false,1,1>::n4] = val * Am[pos<true,1,1>::n4];
outm[pos<false,2,1>::n4] = val * Am[pos<true,2,1>::n4];
outm[pos<false,3,1>::n4] = val * Am[pos<true,3,1>::n4];
outm[pos<false,0,2>::n4] = val * Am[pos<true,0,2>::n4];
outm[pos<false,1,2>::n4] = val * Am[pos<true,1,2>::n4];
outm[pos<false,2,2>::n4] = val * Am[pos<true,2,2>::n4];
outm[pos<false,3,2>::n4] = val * Am[pos<true,3,2>::n4];
outm[pos<false,0,3>::n4] = val * Am[pos<true,0,3>::n4];
outm[pos<false,1,3>::n4] = val * Am[pos<true,1,3>::n4];
outm[pos<false,2,3>::n4] = val * Am[pos<true,2,3>::n4];
outm[pos<false,3,3>::n4] = val * Am[pos<true,3,3>::n4];
}
break;
default:
;
}
}