File tree Expand file tree Collapse file tree
include/sparsepc/contiguoussupport Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11#pragma once
22
33#include < concepts>
4+ #include < cstdlib>
45
56#include < sparsepc/eigen/solver.hpp>
67#include < sparsepc/generic/solver.hpp>
@@ -110,21 +111,21 @@ namespace Sparsepc
110111 return cmponent;
111112 }
112113
113- const Vectori indices = Vectori::LinSpaced (n, 0 , n - 1 );
114- auto lambdaMax = 0.0 ;
115- Index iMax = 0 ;
116- for (Index i = 0 ; i < n - k + 1 ; ++i)
114+ auto lambdaMax = static_cast <Scalar>(- 1 );
115+ Vectori subMax ;
116+ Vectori sub = Vectori::LinSpaced (k, 0 , k - 1 ) ;
117+ for (Index i = 0 ; i < n; ++i)
117118 {
118- const auto sub = indices.segment (i, k);
119119 const auto lambda = eigenSolver.maximumValue (sigma (sub, sub));
120120 if (lambda > lambdaMax)
121121 {
122122 lambdaMax = lambda;
123- iMax = i ;
123+ subMax = sub ;
124124 }
125+
126+ sub[std::div (i, k).rem ] = std::div (k + i, n).rem ;
125127 }
126128
127- const auto subMax = indices.segment (iMax, k);
128129 auto subDimEigenElement =
129130 eigenSolver.maximumValueElement (sigma (subMax, subMax));
130131
You can’t perform that action at this time.
0 commit comments