/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* This file is part of the HiGHS linear optimization suite */ /* */ /* Available as open-source under the MIT License */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /**@file io/FilereaderLp.cpp * @brief */ #ifndef IO_FILEREADER_LP_H_ #define IO_FILEREADER_LP_H_ #include #include "io/Filereader.h" #include "io/HighsIO.h" #define BUFFERSIZE 561 #define LP_MAX_LINE_LENGTH 560 #define LP_MAX_NAME_LENGTH 255 #define LP_COMMENT_FILESTART ("File written by HiGHS .lp file handler") class FilereaderLp : public Filereader { public: FilereaderRetcode readModelFromFile(const HighsOptions& options, const std::string filename, HighsModel& model); HighsStatus writeModelToFile(const HighsOptions& options, const std::string filename, const HighsModel& model); private: // functions to write files HighsInt linelength; void writeToFile(FILE* file, const char* format, ...); void writeToFileLineend(FILE* file); void writeToFileValue(FILE* file, const double value, const bool force_plus = true); void writeToFileVar(FILE* file, const HighsInt var_index); void writeToFileVar(FILE* file, const std::string var_name); void writeToFileCon(FILE* file, const HighsInt con_index); void writeToFileMatrixRow(FILE* file, const HighsInt iRow, const HighsSparseMatrix ar_matrix, const std::vector col_names); }; #endif