Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion cpp/src/io/mps_parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <sstream>
#include <string>
#include <unordered_set>
#include <utility>

#ifdef MPS_PARSER_WITH_BZIP2
#include <bzlib.h>
Expand Down Expand Up @@ -634,7 +635,7 @@ std::vector<char> mps_parser_t<i_t, f_t>::file_to_string(const std::string& file
std::vector<char> buf(bufsize + 1);
rewind(fp.get());

mps_parser_expects(fread(buf.data(), sizeof(char), bufsize, fp.get()) == bufsize,
mps_parser_expects(std::cmp_equal(fread(buf.data(), sizeof(char), bufsize, fp.get()), bufsize),
error_type_t::ValidationError,
"Error reading MPS file! Given path: %s",
mps_file.c_str());
Expand Down
31 changes: 19 additions & 12 deletions docs/cuopt/source/cuopt-c/lp-qp-milp/examples/milp_mps_example.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,21 +119,28 @@ cuopt_int_t solve_mps_file(const char* filename)
termination_status_to_string(termination_status),
termination_status);
printf("Solve time: %f seconds\n", time);
printf("Objective value: %f\n", objective_value);

// Get and print solution variables
if (has_primal_solution) {
solution_values = (cuopt_float_t*)malloc(num_variables * sizeof(cuopt_float_t));
status = cuOptGetPrimalSolution(solution, solution_values);
if (status != CUOPT_SUCCESS) {
printf("Error getting solution values: %d\n", status);
goto DONE;
}
}
printf("Objective value: %f\n", objective_value);

// Get and print solution variables
solution_values =
(cuopt_float_t*)malloc((size_t)num_variables * sizeof(cuopt_float_t));
if (solution_values == NULL) {
printf("Error allocating solution buffer\n");
status = CUOPT_OUT_OF_MEMORY;
goto DONE;
}
status = cuOptGetPrimalSolution(solution, solution_values);
if (status != CUOPT_SUCCESS) {
printf("Error getting solution values: %d\n", status);
goto DONE;
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.

printf("\nSolution: \n");
for (cuopt_int_t i = 0; i < num_variables; i++) {
printf("x%d = %f\n", i + 1, solution_values[i]);
printf("\nSolution: \n");
for (cuopt_int_t i = 0; i < num_variables; i++) {
printf("x%d = %f\n", i + 1, solution_values[i]);
}
}

DONE:
Expand Down
Loading