1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//! # russcip
//! Safe Rust interface for SCIP.
//!
//! # Example
//! Model and solve an integer program.
//! ```rust
//! use russcip::model::Model;
//! use russcip::model::ObjSense;
//! use russcip::status::Status;
//! use russcip::variable::VarType;
//!
//!
//! // Create model
//! let mut model = Model::new();
//! model.include_default_plugins();
//! model.create_prob("test");
//! model.set_obj_sense(ObjSense::Maximize);
//! model.hide_output();
//!
//! // Add variables
//! let x1 = model.add_var(0., f64::INFINITY, 3., "x1", VarType::Integer);
//! let x2 = model.add_var(0., f64::INFINITY, 4., "x2", VarType::Integer);
//!
//! // Add constraints
//! model.add_cons(&[&x1, &x2], &[2., 1.], -f64::INFINITY, 100., "c1");
//! model.add_cons(&[&x1, &x2], &[1., 2.], -f64::INFINITY, 80., "c2");
//!
//! model.solve();
//!
//! let status = model.get_status();
//! println!("Solved with status {:?}", status);
//!
//! let obj_val = model.get_obj_val();
//! println!("Objective value: {}", obj_val);
//!
//! let sol = model.get_best_sol();
//! let vars = model.get_vars();
//!
//! for var in vars {
//! println!("{} = {}", &var.get_name(), sol.get_var_val(&var));
//! }
use scip_sys as c_api;