本文整理汇总了C++中mat::_elem方法的典型用法代码示例。如果您正苦于以下问题:C++ mat::_elem方法的具体用法?C++ mat::_elem怎么用?C++ mat::_elem使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mat
的用法示例。
在下文中一共展示了mat::_elem方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sub_m_v_vT
// m=m-m*v*v'
void sub_m_v_vT(mat &m, const vec &v)
{
vec v2(m.rows());
double tmp, *v2p;
const double *vp;
int i, j;
it_assert(v.size() == m.cols(), "sub_m_v_vT()");
v2p = v2._data();
for (i = 0; i < m.rows(); i++) {
tmp = 0.0;
vp = v._data();
for (j = 0; j < m.cols(); j++)
tmp += *(vp++) * m._elem(i, j);
*(v2p++) = tmp;
}
v2p = v2._data();
for (i = 0; i < m.rows(); i++) {
vp = v._data();
for (j = 0; j < m.cols(); j++)
m._elem(i, j) -= *v2p * *(vp++);
v2p++;
}
}
示例2: backward_substitution
void backward_substitution(const mat &U, const vec &b, vec &x)
{
assert( U.rows() == U.cols() && U.cols() == b.size() && b.size() == x.size() );
int n = U.rows(), i, j;
double temp;
x(n-1)=b(n-1)/U(n-1,n-1);
for (i=n-2; i>=0; i--) {
// Should be: x(i)=((b(i)-U(i,i,i+1,n-1)*x(i+1,n-1))/U(i,i))(0); but this is too slow.
temp=0;
//i_pos=i*U._row_offset();
for (j=i+1; j<n; j++) {
temp += U._elem(i,j) * x(j);
//temp+=U._data()[i_pos+j]*x(j);
}
x(i) = (b(i)-temp)/U._elem(i,i);
//x(i)=(b(i)-temp)/U._data()[i_pos+i];
}
}
示例3: forward_substitution
void forward_substitution(const mat &L, const vec &b, vec &x)
{
assert( L.rows() == L.cols() && L.cols() == b.size() && b.size() == x.size() );
int n = L.rows(), i, j;
double temp;
x(0)=b(0)/L(0,0);
for (i=1;i<n;i++) {
// Should be: x(i)=((b(i)-L(i,i,0,i-1)*x(0,i-1))/L(i,i))(0); but this is to slow.
//i_pos=i*L._row_offset();
temp=0;
for (j=0; j<i; j++) {
temp += L._elem(i,j) * x(j);
//temp+=L._data()[i_pos+j]*x(j);
}
x(i) = (b(i)-temp)/L._elem(i,i);
//x(i)=(b(i)-temp)/L._data()[i_pos+i];
}
}