49 uint_fast64_t
const sizeX = 128;
50 uint_fast64_t
const sizeY = 64;
52 out <<
"Region refinement Check result (visualization):\n";
53 out <<
" \t x-axis: " << x <<
" \t y-axis: " << y <<
" \t S=safe, [ ]=unsafe, -=ambiguous \n";
54 for (uint_fast64_t i = 0; i < sizeX + 2; ++i) {
59 CoefficientType deltaX =
61 CoefficientType deltaY =
63 CoefficientType printedRegionArea = deltaX * deltaY;
65 CoefficientType yLower = yUpper - deltaY;
68 CoefficientType xUpper = xLower + deltaX;
69 bool currRegionSafe =
false;
70 bool currRegionUnSafe =
false;
71 bool currRegionIllDefined =
false;
72 bool currRegionComplete =
false;
79 CoefficientType interesctionSizeY = std::min(yUpper, r.first.getUpperBoundary(y)) - std::max(yLower, r.first.getLowerBoundary(y));
81 CoefficientType interesctionSizeX = std::min(xUpper, r.first.getUpperBoundary(x)) - std::max(xLower, r.first.getLowerBoundary(x));
83 CoefficientType intersectionArea = interesctionSizeY * interesctionSizeX;
88 coveredArea += intersectionArea;
89 if (currRegionSafe && currRegionUnSafe) {
92 if (coveredArea == printedRegionArea) {
93 currRegionComplete =
true;
98 if (currRegionComplete && currRegionSafe && !currRegionUnSafe) {
100 }
else if (currRegionComplete && currRegionUnSafe && !currRegionSafe) {
102 }
else if (currRegionComplete && currRegionIllDefined) {
110 for (uint_fast64_t i = 0; i < sizeX + 2; ++i) {
115 STORM_LOG_WARN(
"Writing illustration of region check result to a stream is only implemented for two parameters.");