Method: Clp::Model#solve

Defined in:
lib/clp/model.rb

#solve(log_level: nil, time_limit: nil) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/clp/model.rb', line 37

def solve(log_level: nil, time_limit: nil)
  with_options(log_level: log_level, time_limit: time_limit) do
    # do not check status
    FFI.Clp_initialSolve(model)
  end

  num_rows = FFI.Clp_numberRows(model)
  num_cols = FFI.Clp_numberColumns(model)

  {
    status: FFI::STATUS[FFI.Clp_status(model)],
    objective: FFI.Clp_objectiveValue(model),
    primal_row: read_double_array(FFI.Clp_primalRowSolution(model), num_rows),
    primal_col: read_double_array(FFI.Clp_primalColumnSolution(model), num_cols),
    dual_row: read_double_array(FFI.Clp_dualRowSolution(model), num_rows),
    dual_col: read_double_array(FFI.Clp_dualColumnSolution(model), num_cols)
  }
end