This is an automated email from the git hooks/post-receive script.
logari81 pushed a commit to branch master
in repository getfem.
The following commit(s) were added to refs/heads/master by this push:
new 3c95e507 Fix indentation and readability
3c95e507 is described below
commit 3c95e507bad7bb2e4ffd6593db88bd169dd742b2
Author: Konstantinos Poulios <[email protected]>
AuthorDate: Thu Jan 29 15:53:10 2026 +0100
Fix indentation and readability
---
src/gmm/gmm_range_basis.h | 58 +++++++++++++++++++++++++++++------------------
1 file changed, 36 insertions(+), 22 deletions(-)
diff --git a/src/gmm/gmm_range_basis.h b/src/gmm/gmm_range_basis.h
index 9809c04c..6bee78ee 100644
--- a/src/gmm/gmm_range_basis.h
+++ b/src/gmm/gmm_range_basis.h
@@ -85,7 +85,7 @@ namespace gmm {
// Range basis with a restarted Lanczos method
template <typename Mat>
void range_basis_eff_Lanczos(const Mat &BB, std::set<size_type> &columns,
- double EPS=1E-12) {
+ double EPS=1E-12) {
typedef std::set<size_type> TAB;
typedef typename linalg_traits<Mat>::value_type T;
typedef typename number_traits<T>::magnitude_type R;
@@ -94,10 +94,9 @@ namespace gmm {
col_matrix< rsvector<T> > B(mat_nrows(BB), mat_ncols(BB));
k = 0;
- for (TAB::iterator it = columns.begin(); it!=columns.end(); ++it, ++k){
+ for (TAB::iterator it = columns.begin(); it!=columns.end(); ++it, ++k)
gmm::copy(scaled(mat_col(BB, *it), T(1)/vect_norm2(mat_col(BB, *it))),
mat_col(B, *it));
- }
std::vector<T> w(mat_nrows(B));
size_type restart = 120;
std::vector<T> sdiag(restart);
@@ -135,10 +134,13 @@ namespace gmm {
R beta = R(0), alpha;
gmm::scale(v, T(1)/vect_norm2(v));
size_type eff_restart = restart;
- if (sdiag.size() != restart) {
- sdiag.resize(restart); eigval.resize(restart); diag.resize(restart);
gmm::resize(eigvect, restart, restart);
- gmm::resize(lv, nc_r, restart);
- }
+ if (sdiag.size() != restart) {
+ sdiag.resize(restart);
+ eigval.resize(restart);
+ diag.resize(restart);
+ gmm::resize(eigvect, restart, restart);
+ gmm::resize(lv, nc_r, restart);
+ }
for (size_type i = 0; i < restart; ++i) { // Lanczos iterations
gmm::copy(v, mat_col(lv, i));
@@ -155,19 +157,27 @@ namespace gmm {
gmm::add(gmm::scaled(v, -alpha), wl);
sdiag[i] = beta = vect_norm2(wl);
gmm::copy(v, v0);
- if (beta < EPS) { eff_restart = i+1; break; }
- gmm::copy(gmm::scaled(wl, T(1) / beta), v);
- }
- if (eff_restart != restart) {
- sdiag.resize(eff_restart); eigval.resize(eff_restart);
diag.resize(eff_restart);
- gmm::resize(eigvect, eff_restart, eff_restart); gmm::resize(lv, nc_r,
eff_restart);
- }
+ if (beta < EPS) { eff_restart = i+1; break; }
+ gmm::copy(gmm::scaled(wl, T(1) / beta), v);
+ }
+ if (eff_restart != restart) {
+ sdiag.resize(eff_restart);
+ eigval.resize(eff_restart);
+ diag.resize(eff_restart);
+ gmm::resize(eigvect, eff_restart, eff_restart);
+ gmm::resize(lv, nc_r, eff_restart);
+ }
tridiag_qr_algorithm(diag, sdiag, eigval, eigvect, true);
size_type num = size_type(-1);
rho2 = R(0);
- for (size_type j = 0; j < eff_restart; ++j)
- { R nvp=gmm::abs(eigval[j]); if (nvp > rho2) { rho2=nvp; num=j; }}
+ for (size_type j = 0; j < eff_restart; ++j) {
+ R nvp=gmm::abs(eigval[j]);
+ if (nvp > rho2) {
+ rho2=nvp;
+ num=j;
+ }
+ }
GMM_ASSERT1(num != size_type(-1), "Internal error");
@@ -182,11 +192,15 @@ namespace gmm {
size_type j_max = size_type(-1), j = 0;
R val_max = R(0);
for (TAB::iterator it=columns.begin(); it!=columns.end(); ++it, ++j)
- if (gmm::abs(v[j]) > val_max)
- { val_max = gmm::abs(v[j]); j_max = *it; }
- columns.erase(j_max); nc_r = columns.size();
+ if (gmm::abs(v[j]) > val_max) {
+ val_max = gmm::abs(v[j]);
+ j_max = *it;
+ }
+ columns.erase(j_max);
+ nc_r = columns.size();
}
- else break;
+ else
+ break;
}
}
@@ -389,7 +403,7 @@ namespace gmm {
template <typename Mat>
void range_basis(const Mat &B, std::set<size_type> &columns,
- double EPS, col_major, bool skip_init=false) {
+ double EPS, col_major, bool skip_init=false) {
typedef typename linalg_traits<Mat>::value_type T;
typedef typename number_traits<T>::magnitude_type R;
@@ -492,7 +506,7 @@ namespace gmm {
range_basis(B, columns, EPS,
typename principal_orientation_type
<typename linalg_traits<Mat>::sub_orientation>::potype());
-}
+ }
}