Releases: scipopt/russcip
Releases · scipopt/russcip
v0.6.1
What's Changed
This release introduces a new ergonomic way to build models.
use russcip::prelude::*;
let mut model = Model::default().minimize();
let x = model.add(var().binary().obj(1.0));
let y = model.add(var().binary().obj(2.0));
model.add(cons().coef(&x, 1.0).coef(&y, 1.0).eq(1.0));
let solved = model.solve();
assert_eq!(solved.status(), Status::Optimal);
assert_eq!(solved.obj_val(), 1.0);
Merged PRs
- Ergonomic generic way to add SCIP objects & variable builder by @mmghannam in #199
- Minimize and maximize methods by @mmghannam in #200
- Enable adding iterators of objects too by @mmghannam in #201
- Ergonomic constraint builder by @mmghannam in #202
Full Changelog: v0.6.0...v0.6.1
v0.6.0
What's Changed
- Add method to get var sol val by @mmghannam in #188
- Use correct mutability symantics for row by @mmghannam in #189
- Remove use of Rc for
Variable
andConstraint
& Add parameter getters by @mmghannam in #190 - Add missing clone implementations by @mmghannam in #192
- feat: add set_display_verbosity and show_output by @KnorpelSenf in #194
- Method to get non-zero columns in a row by @mmghannam in #195
- Generic parametr setter and getter by @mmghannam in #196
New Contributors
- @KnorpelSenf made their first contribution in #194
Full Changelog: v0.5.1...v0.6.0
v0.5.0
What's changed
- This release brings a bunch of API changes related to plugins:
- Now all plugin traits get passed
Model<Solving>
object, enabling easy access for methods available in the solving stage, and removing the need for saving it in the struct implementing the plugin trait usingmodel.clone_for_plugins()
. That's why this release also removes the method. - Additionally, callbacks now also include wrappers for the SCIP plugin objects, for example in the Separator trait's
execute_lp
method now aSCIPSeparator
also gets passed, with which one would query its data like the Separator's name or ask it to create a row with this separator as its origin. - The
EventHdlr
plugin callback now also gets passed anEvent
object representing which event was triggered in that specific call. This struct will in the future include methods that give access to the specific event data for different events.
- Now all plugin traits get passed
- Added wrappers for SCIP_COL and SCIP_ROW with access to most of their methods.
- Refactoring:
- Simplification of the trait implementations of the different Model stages.
- Remove the HasSCIPPtr trait and refactor common functionality in different stages to not depend on macros.
Merged PRs
- Add wrapper methods and structs for columns and rows by @mmghannam in #179
- Allow access to model in solving stage in plugins by @mmghannam in #180
- Add access to internal scip separator in callbacks by @mmghannam in #181
- Add method to add cuts by @mmghannam in #182
- Remove HasSCIPPtr trait by @mmghannam in #183
- Remove unneeded macros by @mmghannam in #184
Full Changelog: v0.4.2...v0.5.0
v0.4.2
What's Changed
- Remove caching of variables and constraints in Model by @mmghannam in #164
- Methods to return solution as map by @mmghannam in #165
- Update scip-sys by @mmghannam in #166
- Update scip-sys by @mmghannam in #168
- Update README.md by @mmghannam in #169
- Move scip_ptr() method to trait by @mmghannam in #170
- Make HasScipPtr public by @mmghannam in #171
- Make ScipPtr public by @mmghannam in #172
- Basic structure for separator plugins by @mmghannam in #174
- Add minimal model fn, extra test for separator by @mmghannam in #175
- Update scip-sys to version 0.1.17 by @mmghannam in #177
- Use older runner for conda test by @mmghannam in #178
Full Changelog: v0.4.0...v0.4.2
v0.4.0
What's Changed
- Better handling of unexpected plugin behaviors by @mmghannam in #150
- Allow setting boolean parameters by @Andful in #148
- Add lifetime to solution by @Andful in #149
- Add dual bound method by @mmghannam in #153
- Use Arc in place of all scip pointer uses by @mmghannam in #155
- Hold a SCIP pointer to prevent freeing the model while the constraint is still in use by @mmghannam in #158
- Hold scipptr in variable to eliminate use-after-free errors by @mmghannam in #160
- Use weak refs for model in solving state by @mmghannam in #162
New Contributors
Full Changelog: v0.3.4...v0.4.0
v0.3.4
Full Changelog: v0.3.3...v0.3.4
v0.3.3
What's Changed
- Add contributing section to readme by @mmghannam in #134
- Propagate the from-source scip-sys feature by @mmghannam in #135
Full Changelog: v0.3.2...v0.3.3
v0.3.2
v0.3.1
v0.3.0
What's Changed
- Fix the Windows MSVC build by @KarelPeeters in #115
- Try enabling windows ci workflow by @mmghannam in #116
- Fix windows ci link by @mmghannam in #117
- Add support for indicator constraints by @mohammadfawaz in #120
- Running Clippy +
rustfmt
and add them to CI by @mohammadfawaz in #121 - Clippy: allow too many arguments by @mmghannam in #123
- add set_memory_limit() by @rinde in #124
- Bundled feature by @mmghannam in #127
New Contributors
- @KarelPeeters made their first contribution in #115
- @mohammadfawaz made their first contribution in #120
- @rinde made their first contribution in #124
Full Changelog: v0.2.6...v0.3.0