Class NonSymmetricIPM

template<typename IPMDouble>
class NonSymmetricIPM

Public Types

enum Termination

Values:

enumerator SUCCESS
enumerator FAILURE

Public Functions

NonSymmetricIPM(Matrix &A_, Vector &b_, Vector &c_, LHSCB<IPMDouble> *barrier_)
inline NonSymmetricIPM(Instance<IPMDouble> &instance)
NonSymmetricIPM(Instance<IPMDouble>&, std::string)
template<typename T>
inline void cast_members_from(const NonSymmetricIPM<T> &other)
template<typename T>
inline NonSymmetricIPM<T> *cast_with_product_barrier()
inline IPMDouble calc_step_length_predictor()
int run_solver()
inline IPMDouble primal_error()
inline IPMDouble dual_error()
inline IPMDouble primal_error_rescaled()
inline IPMDouble dual_error_rescaled()
inline IPMDouble duality_gap()
inline IPMDouble complementarity()
inline bool verify_solution(IPMDouble precision = 10e-5)
inline Solution<IPMDouble> get_solution()
void initialize()

Public Members

std::shared_ptr<spdlog::logger> _logger
std::shared_ptr<spdlog::logger> _benchmark_logger
Matrix A
Vector b
Vector c
Eigen::SparseMatrix<IPMDouble> A_sparse
Matrix _basis_ker_A
Vector x
Vector y
Vector s
pt::ptree _config
unsigned _num_predictor_steps = 500
unsigned _num_corrector_steps
IPMDouble _param_step_length_predictor = 0.02
IPMDouble _step_length_predictor
IPMDouble _step_length_corrector
IPMDouble _epsilon = 10e-5
unsigned _total_num_line_steps
IPMDouble _large_neighborhood
IPMDouble _small_neighborhood
bool _check_centrality_in_every_segment = true
bool _type_cast_if_unsuccessful = true
bool _use_line_search = true
IPMDouble kappa
IPMDouble tau
Vector _last_predictor_direction
ErrorConstants<IPMDouble> _err_consts