@@ -87,7 +87,7 @@ class DiagoPPCGTridiagTest : public ::testing::Test
8787 exact.resize (nband);
8888 for (int k = 0 ; k < nband; ++k)
8989 {
90- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 ));
90+ exact[k] = 2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 ));
9191 }
9292
9393 // Convergence thresholds
@@ -164,7 +164,7 @@ TEST_F(DiagoPPCGTridiagTest, BlockSubspace)
164164 {
165165 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " Tridiag BLOCK: eigenvalue[" << i << " ] mismatch" ;
166166 }
167- EXPECT_LE (avg_iter, static_cast < double > (100 )) << " Tridiag BLOCK: too many iterations" ;
167+ EXPECT_LE (avg_iter, double (100 )) << " Tridiag BLOCK: too many iterations" ;
168168}
169169
170170TEST_F (DiagoPPCGTridiagTest, ResidualTraceWritesCsv)
@@ -229,14 +229,14 @@ class DiagoPPCGDiagonalTest : public ::testing::Test
229229 H_mat.assign (n_dim * n_dim, T (0 ));
230230 for (int i = 0 ; i < n_dim; ++i)
231231 {
232- H_mat[i + i * n_dim] = T (static_cast < Real> (i + 1 ), 0 );
232+ H_mat[i + i * n_dim] = T (Real (i + 1 ), 0 );
233233 }
234234
235235 // Preconditioner — diagonal of H
236236 prec.resize (n_dim);
237237 for (int i = 0 ; i < n_dim; ++i)
238238 {
239- prec[i] = static_cast < Real> (i + 1 );
239+ prec[i] = Real (i + 1 );
240240 }
241241
242242 // Lowest 3 eigenvalues: 1, 2, 3
@@ -316,7 +316,7 @@ TEST_F(DiagoPPCGDiagonalTest, BlockSubspace)
316316 {
317317 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " Diagonal BLOCK: eigenvalue[" << i << " ] mismatch" ;
318318 }
319- EXPECT_LE (avg_iter, static_cast < double > (50 )) << " Diagonal BLOCK: too many iterations" ;
319+ EXPECT_LE (avg_iter, double (50 )) << " Diagonal BLOCK: too many iterations" ;
320320}
321321
322322TEST_F (DiagoPPCGDiagonalTest, ConjugateGradientFallback)
@@ -341,7 +341,7 @@ TEST_F(DiagoPPCGDiagonalTest, ConjugateGradientFallback)
341341 {
342342 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " Diagonal CG fallback: eigenvalue[" << i << " ] mismatch" ;
343343 }
344- EXPECT_LE (avg_iter, static_cast < double > (80 )) << " Diagonal CG fallback: too many iterations" ;
344+ EXPECT_LE (avg_iter, double (80 )) << " Diagonal CG fallback: too many iterations" ;
345345}
346346
347347TEST_F (DiagoPPCGDiagonalTest, EmptyHOperatorThrows)
@@ -397,13 +397,13 @@ TEST(DiagoPPCGLeadingDimensionTest, BlockSubspaceWithPadding)
397397 std::vector<T> H_mat (n_dim * n_dim, T (0 ));
398398 for (int i = 0 ; i < n_dim; ++i)
399399 {
400- H_mat[i + i * n_dim] = T (static_cast < Real> (i + 1 ), 0 );
400+ H_mat[i + i * n_dim] = T (Real (i + 1 ), 0 );
401401 }
402402
403403 std::vector<Real> prec (n_dim);
404404 for (int i = 0 ; i < n_dim; ++i)
405405 {
406- prec[i] = static_cast < Real> (i + 1 );
406+ prec[i] = Real (i + 1 );
407407 }
408408
409409 std::vector<T> psi (ld * nband, T (17.0 , -3.0 ));
@@ -463,7 +463,7 @@ TEST(DiagoPPCGLeadingDimensionTest, BlockSubspaceWithPadding)
463463 {
464464 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " Padded ld BLOCK: eigenvalue[" << i << " ] mismatch" ;
465465 }
466- EXPECT_LE (avg_iter, static_cast < double > (80 )) << " Padded ld BLOCK: too many iterations" ;
466+ EXPECT_LE (avg_iter, double (80 )) << " Padded ld BLOCK: too many iterations" ;
467467}
468468
469469// =============================================================================
@@ -563,7 +563,7 @@ TEST_F(DiagoPPCG2x2Test, BlockSubspace)
563563 {
564564 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " 2x2 BLOCK: eigenvalue[" << i << " ] mismatch" ;
565565 }
566- EXPECT_LE (avg_iter, static_cast < double > (50 )) << " 2x2 BLOCK: too many iterations" ;
566+ EXPECT_LE (avg_iter, double (50 )) << " 2x2 BLOCK: too many iterations" ;
567567}
568568
569569TEST (DiagoPPCGComplexHermitianTest, DefaultKeepsImaginaryProjection)
@@ -756,7 +756,7 @@ TEST_F(DiagoPPCGDegenerateTest, BlockSubspace)
756756 {
757757 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " Degenerate BLOCK: eigenvalue[" << i << " ] mismatch" ;
758758 }
759- EXPECT_LE (avg_iter, static_cast < double > (100 )) << " Degenerate BLOCK: too many iterations" ;
759+ EXPECT_LE (avg_iter, double (100 )) << " Degenerate BLOCK: too many iterations" ;
760760}
761761
762762// =============================================================================
@@ -791,7 +791,7 @@ class DiagoPPCGLargeTridiagTest : public ::testing::Test
791791 exact.resize (nband);
792792 for (int k = 0 ; k < nband; ++k)
793793 {
794- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 ));
794+ exact[k] = 2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 ));
795795 }
796796
797797 ethr.assign (nband, 1e-10 );
@@ -865,7 +865,7 @@ TEST_F(DiagoPPCGLargeTridiagTest, BlockSubspace)
865865 {
866866 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " Large Tridiag BLOCK: eigenvalue[" << i << " ] mismatch" ;
867867 }
868- EXPECT_LE (avg_iter, static_cast < double > (150 )) << " Large Tridiag BLOCK: too many iterations" ;
868+ EXPECT_LE (avg_iter, double (150 )) << " Large Tridiag BLOCK: too many iterations" ;
869869}
870870
871871// =============================================================================
@@ -887,10 +887,10 @@ class DiagoPPCGDenseTest : public ::testing::Test
887887 ld = n_dim;
888888
889889 // Start with diagonal matrix
890- std::vector<Real> dense (n_dim * n_dim, static_cast < Real> (0 ));
890+ std::vector<Real> dense (n_dim * n_dim, Real (0 ));
891891 for (int i = 0 ; i < n_dim; ++i)
892892 {
893- dense[i + i * n_dim] = static_cast < Real> (i + 1 );
893+ dense[i + i * n_dim] = Real (i + 1 );
894894 }
895895
896896 // Apply several Givens rotations to make it dense while preserving
@@ -919,7 +919,7 @@ class DiagoPPCGDenseTest : public ::testing::Test
919919 // Several rotations with different angles to create a genuinely
920920 // dense matrix (all off-diagonals become non-zero)
921921 std::mt19937 rng_dense (111 );
922- std::uniform_real_distribution<Real> angle_dist (static_cast < Real> (0.2 ), static_cast < Real> (1.3 ));
922+ std::uniform_real_distribution<Real> angle_dist (Real (0.2 ), Real (1.3 ));
923923 for (int k = 0 ; k < 20 ; ++k)
924924 {
925925 int p = k % (n_dim - 1 );
@@ -1023,7 +1023,7 @@ TEST_F(DiagoPPCGDenseTest, BlockSubspace)
10231023 {
10241024 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " Dense BLOCK: eigenvalue[" << i << " ] mismatch" ;
10251025 }
1026- EXPECT_LE (avg_iter, static_cast < double > (200 )) << " Dense BLOCK: too many iterations" ;
1026+ EXPECT_LE (avg_iter, double (200 )) << " Dense BLOCK: too many iterations" ;
10271027}
10281028
10291029// =============================================================================
@@ -1193,7 +1193,7 @@ TEST_F(DiagoPPCGWithSTest, BlockSubspace)
11931193 << " WithS BLOCK: residual[" << i << " ] too large, r=" << res_nrm;
11941194 }
11951195
1196- EXPECT_LE (avg_iter, static_cast < double > (100 )) << " WithS BLOCK: too many iterations" ;
1196+ EXPECT_LE (avg_iter, double (100 )) << " WithS BLOCK: too many iterations" ;
11971197}
11981198
11991199// =============================================================================
@@ -1229,7 +1229,7 @@ class DiagoPPCGGammaG0Test : public ::testing::Test
12291229 exact.resize (nband);
12301230 for (int k = 0 ; k < nband; ++k)
12311231 {
1232- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 ));
1232+ exact[k] = 2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 ));
12331233 }
12341234
12351235 ethr.assign (nband, 1e-10 );
@@ -1313,7 +1313,7 @@ TEST_F(DiagoPPCGGammaG0Test, BlockSubspace)
13131313 }
13141314 EXPECT_LT (max_imag, 1e-12 ) << " GammaG0 BLOCK: G=0 band has non-zero imaginary part: " << max_imag;
13151315
1316- EXPECT_LE (avg_iter, static_cast < double > (100 )) << " GammaG0 BLOCK: too many iterations" ;
1316+ EXPECT_LE (avg_iter, double (100 )) << " GammaG0 BLOCK: too many iterations" ;
13171317}
13181318
13191319// =============================================================================
@@ -1399,7 +1399,7 @@ TEST_F(DiagoPPCGSingleBandTest, BlockSubspace)
13991399 double avg_iter = solver.diag (h_op, nullptr , ld, nband, n_dim, psi_run.data (), eval.data (), ethr, prec.data ());
14001400
14011401 EXPECT_NEAR (eval[0 ], exact[0 ], 1e-8 ) << " SingleBand BLOCK: eigenvalue mismatch" ;
1402- EXPECT_LE (avg_iter, static_cast < double > (50 )) << " SingleBand BLOCK: too many iterations" ;
1402+ EXPECT_LE (avg_iter, double (50 )) << " SingleBand BLOCK: too many iterations" ;
14031403}
14041404
14051405// =============================================================================
@@ -1436,7 +1436,7 @@ class DiagoPPCGEigenvectorTest : public ::testing::Test
14361436 exact.resize (nband);
14371437 for (int k = 0 ; k < nband; ++k)
14381438 {
1439- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 ));
1439+ exact[k] = 2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 ));
14401440 }
14411441
14421442 ethr.assign (nband, 1e-8 );
@@ -1550,7 +1550,7 @@ TEST_F(DiagoPPCGEigenvectorTest, BlockSubspace)
15501550 }
15511551 }
15521552
1553- EXPECT_LE (avg_iter, static_cast < double > (100 )) << " Eigenvec BLOCK: too many iterations" ;
1553+ EXPECT_LE (avg_iter, double (100 )) << " Eigenvec BLOCK: too many iterations" ;
15541554}
15551555
15561556// =============================================================================
@@ -1586,7 +1586,7 @@ class DiagoPPCGAllBandsTest : public ::testing::Test
15861586 exact.resize (nband);
15871587 for (int k = 0 ; k < nband; ++k)
15881588 {
1589- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 ));
1589+ exact[k] = 2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 ));
15901590 }
15911591
15921592 ethr.assign (nband, 1e-10 );
@@ -1660,7 +1660,7 @@ TEST_F(DiagoPPCGAllBandsTest, BlockSubspace)
16601660 {
16611661 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " AllBands BLOCK: eigenvalue[" << i << " ] mismatch" ;
16621662 }
1663- EXPECT_LE (avg_iter, static_cast < double > (100 )) << " AllBands BLOCK: too many iterations" ;
1663+ EXPECT_LE (avg_iter, double (100 )) << " AllBands BLOCK: too many iterations" ;
16641664}
16651665
16661666// =============================================================================
@@ -1695,7 +1695,7 @@ class DiagoPPCGMediumTridiagTest : public ::testing::Test
16951695 exact.resize (nband);
16961696 for (int k = 0 ; k < nband; ++k)
16971697 {
1698- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 ));
1698+ exact[k] = 2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 ));
16991699 }
17001700
17011701 ethr.assign (nband, 1e-10 );
@@ -1769,7 +1769,7 @@ TEST_F(DiagoPPCGMediumTridiagTest, BlockSubspace)
17691769 {
17701770 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " Medium Tridiag BLOCK: eigenvalue[" << i << " ] mismatch" ;
17711771 }
1772- EXPECT_LE (avg_iter, static_cast < double > (120 )) << " Medium Tridiag BLOCK: too many iterations" ;
1772+ EXPECT_LE (avg_iter, double (120 )) << " Medium Tridiag BLOCK: too many iterations" ;
17731773}
17741774
17751775// =============================================================================
@@ -1805,7 +1805,7 @@ class DiagoPPCGGammaG0SmallTest : public ::testing::Test
18051805 exact.resize (nband);
18061806 for (int k = 0 ; k < nband; ++k)
18071807 {
1808- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 ));
1808+ exact[k] = 2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 ));
18091809 }
18101810
18111811 ethr.assign (nband, 1e-10 );
@@ -1891,7 +1891,7 @@ TEST_F(DiagoPPCGGammaG0SmallTest, BlockSubspace)
18911891 EXPECT_LT (max_imag, 1e-12 ) << " GammaG0Small BLOCK: band[" << j << " ] has non-zero imaginary part: " << max_imag;
18921892 }
18931893
1894- EXPECT_LE (avg_iter, static_cast < double > (100 )) << " GammaG0Small BLOCK: too many iterations" ;
1894+ EXPECT_LE (avg_iter, double (100 )) << " GammaG0Small BLOCK: too many iterations" ;
18951895}
18961896
18971897// =============================================================================
@@ -1941,9 +1941,9 @@ class DiagoPPCGPentaTest : public ::testing::Test
19411941 exact.resize (nband);
19421942 for (int k = 0 ; k < nband; ++k)
19431943 {
1944- Real theta = static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (2 * (n_dim + 1 ));
1944+ Real theta = Real (k + 1 ) * M_PI / Real (2 * (n_dim + 1 ));
19451945 Real s = std::sin (theta);
1946- exact[k] = static_cast < Real> (16 ) * s * s * s * s;
1946+ exact[k] = Real (16 ) * s * s * s * s;
19471947 }
19481948
19491949 ethr.assign (nband, 1e-10 );
@@ -2017,7 +2017,7 @@ TEST_F(DiagoPPCGPentaTest, BlockSubspace)
20172017 {
20182018 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " Penta BLOCK: eigenvalue[" << i << " ] mismatch" ;
20192019 }
2020- EXPECT_LE (avg_iter, static_cast < double > (150 )) << " Penta BLOCK: too many iterations" ;
2020+ EXPECT_LE (avg_iter, double (150 )) << " Penta BLOCK: too many iterations" ;
20212021}
20222022
20232023// =============================================================================
@@ -2116,7 +2116,7 @@ TEST_F(DiagoPCGGappedSpectrumTest, BlockSubspace)
21162116 {
21172117 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " Gapped BLOCK: eigenvalue[" << i << " ] mismatch" ;
21182118 }
2119- EXPECT_LE (avg_iter, static_cast < double > (100 )) << " Gapped BLOCK: too many iterations" ;
2119+ EXPECT_LE (avg_iter, double (100 )) << " Gapped BLOCK: too many iterations" ;
21202120}
21212121
21222122// =============================================================================
@@ -2154,7 +2154,7 @@ class DiagoPPCGBadPrecTest : public ::testing::Test
21542154 exact.resize (nband);
21552155 for (int k = 0 ; k < nband; ++k)
21562156 {
2157- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 ));
2157+ exact[k] = 2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 ));
21582158 }
21592159
21602160 ethr.assign (nband, 1e-10 );
@@ -2228,7 +2228,7 @@ TEST_F(DiagoPPCGBadPrecTest, BlockSubspace)
22282228 {
22292229 EXPECT_NEAR (eval[i], exact[i], 1e-8 ) << " BadPrec BLOCK: eigenvalue[" << i << " ] mismatch" ;
22302230 }
2231- EXPECT_LE (avg_iter, static_cast < double > (200 )) << " BadPrec BLOCK: too many iterations" ;
2231+ EXPECT_LE (avg_iter, double (200 )) << " BadPrec BLOCK: too many iterations" ;
22322232}
22332233
22342234// =============================================================================
@@ -2298,7 +2298,7 @@ class DiagoPPCGScaledTest : public ::testing::Test
22982298 exact.resize (nband);
22992299 for (int k = 0 ; k < nband; ++k)
23002300 {
2301- exact[k] = 100.0 * (2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 )));
2301+ exact[k] = 100.0 * (2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 )));
23022302 }
23032303 ethr.assign (nband, 1e-8 );
23042304 init_psi (808 );
@@ -2393,7 +2393,7 @@ class DiagoPPCGManyBandsTest : public ::testing::Test
23932393 exact.resize (nband);
23942394 for (int k = 0 ; k < nband; ++k)
23952395 {
2396- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 ));
2396+ exact[k] = 2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 ));
23972397 }
23982398 ethr.assign (nband, 1e-10 );
23992399 init_psi (909 );
@@ -2488,7 +2488,7 @@ class DiagoPPCGRrStep1Test : public ::testing::Test
24882488 exact.resize (nband);
24892489 for (int k = 0 ; k < nband; ++k)
24902490 {
2491- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 ));
2491+ exact[k] = 2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 ));
24922492 }
24932493 ethr.assign (nband, 1e-10 );
24942494 init_psi (111 );
@@ -2586,7 +2586,7 @@ class DiagoPPCGNeumannTest : public ::testing::Test
25862586 exact.resize (nband);
25872587 for (int k = 0 ; k < nband; ++k)
25882588 {
2589- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k) * M_PI / static_cast < Real> (n_dim));
2589+ exact[k] = 2.0 - 2.0 * std::cos (Real (k) * M_PI / Real (n_dim));
25902590 }
25912591 ethr.assign (nband, 1e-10 );
25922592 init_psi (222 );
@@ -2681,7 +2681,7 @@ class DiagoPPCGTightEthrTest : public ::testing::Test
26812681 exact.resize (nband);
26822682 for (int k = 0 ; k < nband; ++k)
26832683 {
2684- exact[k] = 2.0 - 2.0 * std::cos (static_cast < Real> (k + 1 ) * M_PI / static_cast < Real> (n_dim + 1 ));
2684+ exact[k] = 2.0 - 2.0 * std::cos (Real (k + 1 ) * M_PI / Real (n_dim + 1 ));
26852685 }
26862686 ethr.assign (nband, 1e-14 );
26872687 init_psi (333 );
@@ -2933,7 +2933,7 @@ class DiagoPPCGBenchmarkTest : public ::testing::Test
29332933 static void make_random_hamilt (int n, int sparsity_pct, std::vector<T>& H, std::vector<Real>& prec)
29342934 {
29352935 H.assign (n * n, T (0 ));
2936- std::mt19937 rng (static_cast < unsigned > (n * 100 + sparsity_pct));
2936+ std::mt19937 rng (unsigned (n * 100 + sparsity_pct));
29372937 std::uniform_real_distribution<Real> dist (-1.0 , 1.0 );
29382938 int nnz = 0 ;
29392939 for (int i = 0 ; i < n; ++i)
0 commit comments