@@ -80,10 +80,11 @@ void HybridSolveHandler::forwardSolve(std::vector<double>& x) const {
8080 // temporary space for gemv
8181 const Int gemv_space = ldSn - nb * j - jb;
8282 std::vector<double > y (gemv_space);
83-
84- callAndTime_dgemv (' T' , jb, gemv_space, 1.0 , &sn_columns_[sn][SnCol_ind],
85- jb, &x[x_start], 1 , 0.0 , y.data (), 1 , data_);
86- SnCol_ind += jb * gemv_space;
83+ if (gemv_space > 0 ) {
84+ callAndTime_dgemv (' T' , jb, gemv_space, 1.0 , &sn_columns_[sn][SnCol_ind],
85+ jb, &x[x_start], 1 , 0.0 , y.data (), 1 , data_);
86+ SnCol_ind += jb * gemv_space;
87+ }
8788#if HIPO_TIMING_LEVEL >= 2
8889 if (data_) data_->sumTime (kTimeSolveSolve_dense , clock.stop ());
8990#endif
@@ -174,24 +175,27 @@ void HybridSolveHandler::backwardSolve(std::vector<double>& x) const {
174175 const Int gemv_space = ldSn - nb * j - jb;
175176 std::vector<double > y (gemv_space);
176177
178+ if (gemv_space > 0 ) {
177179#if HIPO_TIMING_LEVEL >= 2
178- clock.start ();
180+ clock.start ();
179181#endif
180- // scatter entries into y
181- for (Int i = 0 ; i < gemv_space; ++i) {
182- const Int row = S_.rows (start_row + nb * j + jb + i);
183- y[i] = x[row];
184- }
182+ // scatter entries into y
183+ for (Int i = 0 ; i < gemv_space; ++i) {
184+ const Int row = S_.rows (start_row + nb * j + jb + i);
185+ y[i] = x[row];
186+ }
185187#if HIPO_TIMING_LEVEL >= 2
186- if (data_) data_->sumTime (kTimeSolveSolve_sparse , clock.stop ());
188+ if (data_) data_->sumTime (kTimeSolveSolve_sparse , clock.stop ());
187189#endif
188190
189191#if HIPO_TIMING_LEVEL >= 2
190- clock.start ();
192+ clock.start ();
191193#endif
192- SnCol_ind -= jb * gemv_space;
193- callAndTime_dgemv (' N' , jb, gemv_space, -1.0 , &sn_columns_[sn][SnCol_ind],
194- jb, y.data (), 1 , 1.0 , &x[x_start], 1 , data_);
194+ SnCol_ind -= jb * gemv_space;
195+ callAndTime_dgemv (' N' , jb, gemv_space, -1.0 ,
196+ &sn_columns_[sn][SnCol_ind], jb, y.data (), 1 , 1.0 ,
197+ &x[x_start], 1 , data_);
198+ }
195199
196200 SnCol_ind -= diag_entries;
197201 callAndTime_dtrsv (' U' , ' N' , ' U' , jb, &sn_columns_[sn][SnCol_ind], jb,
0 commit comments