Skip to content

Commit

Permalink
Merge pull request #14 from scipopt/hedtke-v110
Browse files Browse the repository at this point in the history
Release v1.1.0
  • Loading branch information
hedtke authored Oct 15, 2023
2 parents e7c78c4 + f69a78c commit 8913d97
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 5 deletions.
21 changes: 20 additions & 1 deletion changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased] - [Doc:Unreleased]

## [1.1.0] - 2023-10-15

### Changed

- [PR14](https://github.com/scipopt/SCIPpp/pull/14) Using SCIP 8.0.4 now.

### Added

- [PR12](https://github.com/scipopt/SCIPpp/pull/12)
Expose SCIP counterparts via `Model::epsilon`, `Model::round`, and `Model::isZero`.
- [PR11](https://github.com/scipopt/SCIPpp/pull/11)
IO methods `Model::writeOrigProblem` to write a model to a file or standard output.

### Fixed

- [PR12](https://github.com/scipopt/SCIPpp/pull/12)
Added more const-correctness

## [1.0.2] - 2023-08-12

### Fixed
Expand All @@ -28,7 +46,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
Initial release

[Doc:Unreleased]: https://scipopt.github.io/SCIPpp/
[Unreleased]: https://github.com/scipopt/SCIPpp
[Unreleased]: https://github.com/scipopt/SCIPpp/compare/1.1.0...main
[1.1.0]: https://github.com/scipopt/SCIPpp/releases/tag/1.1.0
[1.0.2]: https://github.com/scipopt/SCIPpp/releases/tag/1.0.2
[1.0.1]: https://github.com/scipopt/SCIPpp/releases/tag/1.0.1
[1.0.0]: https://github.com/scipopt/SCIPpp/releases/tag/1.0.0
5 changes: 4 additions & 1 deletion conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@ class ScipPlusPlus(ConanFile):
homepage = "https://github.com/scipopt/SCIPpp"
options = {
"with_tests": [True, False],
"with_utils": [True, False],
"shared": [True, False],
"fPIC": [True, False]
}
default_options = {
"with_tests": False,
"with_utils": False,
"shared": False,
"fPIC": True
}
Expand Down Expand Up @@ -65,7 +67,7 @@ def set_version(self):
try:
self.version = git.run("describe --tags --dirty=-d").strip()
except:
self.version = "1.x.y"
self.version = "1.1.0"

def layout(self):
cmake_layout(self)
Expand All @@ -79,6 +81,7 @@ def generate(self):
tc = CMakeToolchain(self)
tc.variables[self.name + "_version"] = self.version
tc.variables["BUILD_TESTS"] = self.options.with_tests
tc.variables["BUILD_UTILS"] = self.options.with_utils
tc.generate()

def build(self):
Expand Down
5 changes: 3 additions & 2 deletions include/scippp/parameters.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4273,7 +4273,8 @@ namespace LIMITS {
constexpr Param<double> GAP { "limits/gap" };
//! solving stops, if the absolute gap = |primalbound - dualbound| is below the given value
constexpr Param<double> ABSGAP { "limits/absgap" };
//! solving stops, if the given number of solutions were found (-1: no limit)
//! solving stops, if the given number of solutions were found; this limit is first checked in presolving (-1: no
//! limit)
constexpr Param<int> SOLUTIONS { "limits/solutions" };
//! solving stops, if the given number of solution improvements were found (-1: no limit)
constexpr Param<int> BESTSOL { "limits/bestsol" };
Expand Down Expand Up @@ -5292,7 +5293,7 @@ namespace PROPAGATING::SYMMETRY {
constexpr Param<int> OFSYMCOMPTIMING { "propagating/symmetry/ofsymcomptiming" };
//! run orbital fixing during presolving?
constexpr Param<bool> PERFORMPRESOLVING { "propagating/symmetry/performpresolving" };
//! recompute symmetries after a restart has occured? (0 = never, 1 = always, 2 = if OF found reduction)
//! recompute symmetries after a restart has occured? (0 = never)
constexpr Param<int> RECOMPUTERESTART { "propagating/symmetry/recomputerestart" };
//! Should non-affected variables be removed from permutation to save memory?
constexpr Param<bool> COMPRESSSYMMETRIES { "propagating/symmetry/compresssymmetries" };
Expand Down
20 changes: 19 additions & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,12 @@ model.setObjsense(Sense::MAXIMIZE);
### Accessing a Solution

A model can be asked for the status and the number of solutions.
A variable can be asked for its value in a given solution.
A variable can be asked for its value in a given solution as

* floating point number via `getSolVal(sol)`.
* integer via `getSolValAsInt(sol)`.
* long integer via `getSolValAsLongInt(sol)`, and
* it can be checked for zero via `isZero(sol)`.

```cpp
const auto& [x0, x1] = model.addVars<2>("x_");
Expand All @@ -126,6 +131,19 @@ if (model.getNSols() > 0 && model.getStatus() == SCIP_STATUS_OPTIMAL) {
}
```

### IO

A model can be written to file via `Model::writeOrigProblem` if a `std::filesystem::directory_entry` is given as
argument. If it is just a string representing a file extension, it is written to standard output.

### Numerics

The model exposes

* `SCIPepsilon` via `epsilon()`,
* `SCIPround` via `round(double)`, and
* `SCIPisZero` via `isZero(double)`

### Features Not Yet Supported

For features not yet supported by SCIP++, one can access the underlying raw SCIP object via
Expand Down

0 comments on commit 8913d97

Please sign in to comment.