@@ -2047,7 +2047,7 @@ void Algorithm<T>::solve_pseudo(ChaseBase<T>* single)
20472047# ifdef CHASE_OUTPUT
20482048 {
20492049 std ::ostringstream oss;
2050- oss << " [QR-HANG- TRACE][solve_pseudo] before QR: iter=" << iteration
2050+ oss << " [QR-TRACE][solve_pseudo] before QR: iter=" << iteration
20512051 << " locked=" << locked
20522052 << " unconverged=" << unconverged
20532053 << " cond=" << std ::scientific << std ::setprecision (6 ) << cond
@@ -2062,7 +2062,7 @@ void Algorithm<T>::solve_pseudo(ChaseBase<T>* single)
20622062# ifdef CHASE_OUTPUT
20632063 {
20642064 std ::ostringstream oss;
2065- oss << " [QR-HANG- TRACE][solve_pseudo] after QR: iter=" << iteration
2065+ oss << " [QR-TRACE][solve_pseudo] after QR: iter=" << iteration
20662066 << " locked=" << locked
20672067 << " unconverged=" << unconverged
20682068 << ' \n ' ;
@@ -2083,19 +2083,27 @@ void Algorithm<T>::solve_pseudo(ChaseBase<T>* single)
20832083# ifdef CHASE_OUTPUT
20842084 {
20852085 // Residual table at Info level
2086- std ::ostringstream oss_res;
2087- oss_res << " unconverged = " << " \t" << unconverged << " \t"
2088- << " new_converged" << " \t" << prev_new_converged << " \n" ;
2089- oss_res << " index\tdegrees\tresid\tresidLast\tritzv\n" ;
2090-
2091- for (std ::size_t i = 0 ; i < unconverged; ++ i)
2086+ auto level = config.GetLogLevel ();
2087+ if (! (level == LogLevel ::Warn || level == LogLevel ::Error))
20922088 {
2093- oss_res << index[i] << " \t" << degrees[index[i]] << " \t"
2094- << resid[index[i]] << " \t" << residLast[i] << " \t"
2095- << ritzv[index[i]] << " \n" ;
2096- }
2089+ std ::size_t max_to_print =
2090+ (level == LogLevel ::Debug || level == LogLevel ::Trace)
2091+ ? unconverged
2092+ : std ::min< std ::size_t> (20 , unconverged);
2093+
2094+ std ::ostringstream oss_res;
2095+ oss_res << " unconverged = " << " \t" << unconverged << " \t"
2096+ << " new_converged" << " \t" << prev_new_converged << " \n" ;
2097+ oss_res << " index\tdegrees\tresid\tresidLast\tritzv\n" ;
20972098
2098- single- > Output (LogLevel ::Info, oss_res.str (), " algorithm" );
2099+ for (std ::size_t i = 0 ; i < max_to_print; ++ i)
2100+ {
2101+ oss_res << index[i] << " \t" << degrees[index[i]] << " \t"
2102+ << resid[index[i]] << " \t" << residLast[i] << " \t"
2103+ << ritzv[index[i]] << " \n" ;
2104+ }
2105+ single- > Output (level, oss_res.str (), " algorithm" );
2106+ }
20992107
21002108 // Symmetry check at Debug level
21012109 std ::ostringstream oss_sym;
@@ -2105,6 +2113,7 @@ void Algorithm<T>::solve_pseudo(ChaseBase<T>* single)
21052113 << " \n" ;
21062114
21072115 single- > Output (LogLevel ::Debug, oss_sym.str (), " algorithm" );
2116+
21082117 }
21092118# endif
21102119 std ::iota (index_temp.begin (), index_temp.begin () + unconverged, 0 );
0 commit comments