1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the class library */
4 /* SoPlex --- the Sequential object-oriented simPlex. */
5 /* */
6 /* Copyright (c) 1996-2023 Zuse Institute Berlin (ZIB) */
7 /* */
8 /* Licensed under the Apache License, Version 2.0 (the "License"); */
9 /* you may not use this file except in compliance with the License. */
10 /* You may obtain a copy of the License at */
11 /* */
12 /* http://www.apache.org/licenses/LICENSE-2.0 */
13 /* */
14 /* Unless required by applicable law or agreed to in writing, software */
15 /* distributed under the License is distributed on an "AS IS" BASIS, */
16 /* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17 /* See the License for the specific language governing permissions and */
18 /* limitations under the License. */
19 /* */
20 /* You should have received a copy of the Apache-2.0 license */
21 /* along with SoPlex; see the file LICENSE. If not email to soplex@zib.de. */
22 /* */
23 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24
25 /**@file validation.h
26 * @brief Validation object for soplex solutions
27 */
28
29 #ifndef SRC_VALIDATION_H_
30 #define SRC_VALIDATION_H_
31
32 #include "soplex.h"
33
34 namespace soplex
35 {
36
37 template <class R>
(1) Event rule_of_three_violation: |
Class "soplex::Validation<double>" has a user definition for at least one special function (copy constructor, copy assignment, destructor) but not all. If one of these functions requires a user definition then the others likely do as well. |
(2) Event remediation: |
Add user-definition for a copy constructor. |
(3) Event remediation: |
Add user-definition for a copy assignment operator. |
Also see events: |
[destructor] |
38 class Validation
39 {
40 public:
41
42 /// should the soplex solution be validated?
43 bool validate;
44
45 /// external solution used for validation
46 std::string validatesolution;
47
48 /// tolerance used for validation
49 R validatetolerance;
50
51 /// default constructor
52 Validation()
53 {
54 validate = false;
55 validatetolerance = 1e-5;
56 }
57
58 /// default destructor
59 ~Validation()
60 {
61 ;
62 }
63
64 /// updates the external solution used for validation
65 bool updateExternalSolution(const std::string& solution);
66
67 /// updates the tolerance used for validation
68 bool updateValidationTolerance(const std::string& tolerance);
69
70 /// validates the soplex solution using the external solution
71 void validateSolveReal(SoPlexBase<R>& soplex);
72 };
73
74 } /* namespace soplex */
75
76 // For general templated functions
77 #include "validation.hpp"
78
79 #endif /* SRC_VALIDATION_H_ */
80