28 std::vector<GeometryValueType>
const& point) {
29 std::vector<GeometryValueType> result;
30 result.reserve(point.size());
31 for (uint_fast64_t objIndex = 0; objIndex < objectives.size(); ++objIndex) {
40 if (polytope->isEmpty()) {
43 if (polytope->isUniversal()) {
46 uint_fast64_t numObjectives = objectives.size();
47 std::vector<std::vector<GeometryValueType>> transformationMatrix(numObjectives,
48 std::vector<GeometryValueType>(numObjectives, storm::utility::zero<GeometryValueType>()));
49 std::vector<GeometryValueType> transformationVector;
50 transformationVector.reserve(numObjectives);
51 for (uint_fast64_t objIndex = 0; objIndex < numObjectives; ++objIndex) {
52 auto const& obj = objectives[objIndex];
54 if (obj.considersComplementaryEvent) {
55 transformationMatrix[objIndex][objIndex] = -storm::utility::one<GeometryValueType>();
56 transformationVector.push_back(storm::utility::one<GeometryValueType>());
58 transformationMatrix[objIndex][objIndex] = storm::utility::one<GeometryValueType>();
59 transformationVector.push_back(storm::utility::zero<GeometryValueType>());
62 if (obj.considersComplementaryEvent) {
63 transformationMatrix[objIndex][objIndex] = storm::utility::one<GeometryValueType>();
64 transformationVector.push_back(storm::utility::one<GeometryValueType>());
66 transformationMatrix[objIndex][objIndex] = -storm::utility::one<GeometryValueType>();
67 transformationVector.push_back(storm::utility::zero<GeometryValueType>());
71 return polytope->affineTransformation(transformationMatrix, transformationVector);