@@ -13,7 +13,6 @@ FactorHiGHSSolver::FactorHiGHSSolver(Options& options, const Model& model,
1313 IpmData* record, const LogHighs& log)
1414 : FH_(&log, options.block_size),
1515 S_{},
16- N_ (S_),
1716 regul_{regul},
1817 info_{info},
1918 data_{record},
@@ -298,7 +297,7 @@ Int FactorHiGHSSolver::factorAS(const HighsSparseMatrix& A,
298297
299298 // factorise matrix
300299 clock.start ();
301- if (FH_.factorise (N_, S_, rowsLower, ptrLower, valLower))
300+ if (FH_.factorise (S_, rowsLower, ptrLower, valLower))
302301 return kStatusErrorFactorise ;
303302 if (info_) {
304303 info_->factor_time += clock.stop ();
@@ -333,8 +332,7 @@ Int FactorHiGHSSolver::factorNE(const HighsSparseMatrix& A,
333332 // modify them.
334333 std::vector<Int> ptrNE (ptrNE_);
335334 std::vector<Int> rowsNE (rowsNE_);
336- if (FH_.factorise (N_, S_, rowsNE, ptrNE, valNE_))
337- return kStatusErrorFactorise ;
335+ if (FH_.factorise (S_, rowsNE, ptrNE, valNE_)) return kStatusErrorFactorise ;
338336 if (info_) {
339337 info_->factor_time += clock.stop ();
340338 info_->factor_number ++;
@@ -353,14 +351,16 @@ Int FactorHiGHSSolver::solveNE(const std::vector<double>& rhs,
353351 lhs = rhs;
354352
355353 Clock clock;
356- auto solve_data = N_.solve (lhs);
354+ Int solve_count;
355+ double final_res;
356+ Int solve_status = FH_.solve (lhs, &solve_count, &final_res);
357357 if (info_) {
358358 info_->solve_time += clock.stop ();
359- info_->solve_number += solve_data. first ;
359+ info_->solve_number += solve_count ;
360360 }
361361 if (data_) {
362- data_->back ().num_solves += solve_data. first ;
363- data_->back ().omega = std::max (data_->back ().omega , solve_data. second );
362+ data_->back ().num_solves += solve_count ;
363+ data_->back ().omega = std::max (data_->back ().omega , final_res );
364364 }
365365
366366 return kStatusOk ;
@@ -381,14 +381,16 @@ Int FactorHiGHSSolver::solveAS(const std::vector<double>& rhs_x,
381381 rhs.insert (rhs.end (), rhs_y.begin (), rhs_y.end ());
382382
383383 Clock clock;
384- auto solve_data = N_.solve (rhs);
384+ Int solve_count;
385+ double final_res;
386+ Int solve_status = FH_.solve (rhs, &solve_count, &final_res);
385387 if (info_) {
386388 info_->solve_time += clock.stop ();
387- info_->solve_number += solve_data. first ;
389+ info_->solve_number += solve_count ;
388390 }
389391 if (data_) {
390- data_->back ().num_solves += solve_data. first ;
391- data_->back ().omega = std::max (data_->back ().omega , solve_data. second );
392+ data_->back ().num_solves += solve_count ;
393+ data_->back ().omega = std::max (data_->back ().omega , final_res );
392394 }
393395
394396 // split lhs
0 commit comments