mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 03:39:01 +08:00
Use lpNorm<1>() to compute l1 norms in LLT and LDLT.
This commit is contained in:
parent
4d07064a3d
commit
0b5546d182
@ -459,16 +459,16 @@ LDLT<MatrixType,_UpLo>& LDLT<MatrixType,_UpLo>::compute(const EigenBase<InputTyp
|
|||||||
m_l1_norm = RealScalar(0);
|
m_l1_norm = RealScalar(0);
|
||||||
if (_UpLo == Lower) {
|
if (_UpLo == Lower) {
|
||||||
for (int col = 0; col < size; ++col) {
|
for (int col = 0; col < size; ++col) {
|
||||||
const RealScalar abs_col_sum = m_matrix.col(col).tail(size - col).cwiseAbs().sum() +
|
const RealScalar abs_col_sum = m_matrix.col(col).tail(size - col).template lpNorm<1>() +
|
||||||
m_matrix.row(col).head(col).cwiseAbs().sum();
|
m_matrix.row(col).head(col).template lpNorm<1>();
|
||||||
if (abs_col_sum > m_l1_norm) {
|
if (abs_col_sum > m_l1_norm) {
|
||||||
m_l1_norm = abs_col_sum;
|
m_l1_norm = abs_col_sum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (int col = 0; col < a.cols(); ++col) {
|
for (int col = 0; col < a.cols(); ++col) {
|
||||||
const RealScalar abs_col_sum = m_matrix.col(col).head(col).cwiseAbs().sum() +
|
const RealScalar abs_col_sum = m_matrix.col(col).head(col).template lpNorm<1>() +
|
||||||
m_matrix.row(col).tail(size - col).cwiseAbs().sum();
|
m_matrix.row(col).tail(size - col).template lpNorm<1>();
|
||||||
if (abs_col_sum > m_l1_norm) {
|
if (abs_col_sum > m_l1_norm) {
|
||||||
m_l1_norm = abs_col_sum;
|
m_l1_norm = abs_col_sum;
|
||||||
}
|
}
|
||||||
|
@ -414,16 +414,16 @@ LLT<MatrixType,_UpLo>& LLT<MatrixType,_UpLo>::compute(const EigenBase<InputType>
|
|||||||
m_l1_norm = RealScalar(0);
|
m_l1_norm = RealScalar(0);
|
||||||
if (_UpLo == Lower) {
|
if (_UpLo == Lower) {
|
||||||
for (int col = 0; col < size; ++col) {
|
for (int col = 0; col < size; ++col) {
|
||||||
const RealScalar abs_col_sum = m_matrix.col(col).tail(size - col).cwiseAbs().sum() +
|
const RealScalar abs_col_sum = m_matrix.col(col).tail(size - col).template lpNorm<1>() +
|
||||||
m_matrix.row(col).head(col).cwiseAbs().sum();
|
m_matrix.row(col).head(col).template lpNorm<1>();
|
||||||
if (abs_col_sum > m_l1_norm) {
|
if (abs_col_sum > m_l1_norm) {
|
||||||
m_l1_norm = abs_col_sum;
|
m_l1_norm = abs_col_sum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (int col = 0; col < a.cols(); ++col) {
|
for (int col = 0; col < a.cols(); ++col) {
|
||||||
const RealScalar abs_col_sum = m_matrix.col(col).head(col).cwiseAbs().sum() +
|
const RealScalar abs_col_sum = m_matrix.col(col).head(col).template lpNorm<1>() +
|
||||||
m_matrix.row(col).tail(size - col).cwiseAbs().sum();
|
m_matrix.row(col).tail(size - col).template lpNorm<1>();
|
||||||
if (abs_col_sum > m_l1_norm) {
|
if (abs_col_sum > m_l1_norm) {
|
||||||
m_l1_norm = abs_col_sum;
|
m_l1_norm = abs_col_sum;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user