Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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