1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 /* */ 3 /* This file is part of the program and library */ 4 /* SCIP --- Solving Constraint Integer Programs */ 5 /* */ 6 /* Copyright (c) 2002-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 SCIP; see the file LICENSE. If not visit scipopt.org. */ 22 /* */ 23 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 24 25 /**@file pub_cutsel.h 26 * @ingroup PUBLICCOREAPI 27 * @brief public methods for cut selectors 28 * @author Mark Turner 29 * @author Felipe Serrano 30 */ 31 32 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 33 34 #ifndef __SCIP_PUB_CUTSEL_H__ 35 #define __SCIP_PUB_CUTSEL_H__ 36 37 38 #include "scip/def.h" 39 #include "scip/type_misc.h" 40 #include "scip/type_cutsel.h" 41 42 #ifdef __cplusplus 43 extern "C" { 44 #endif 45 46 /**@addtogroup PublicCutSelectorMethods 47 * 48 * @{ 49 */ 50 51 /** gets name of cut selector */ 52 SCIP_EXPORT 53 const char* SCIPcutselGetName( 54 SCIP_CUTSEL* cutsel /**< cut selector */ 55 ); 56 57 /** gets user data of cut selector */ 58 SCIP_EXPORT 59 SCIP_CUTSELDATA* SCIPcutselGetData( 60 SCIP_CUTSEL* cutsel /**< cut selector */ 61 ); 62 63 /** gets description of cut selector */ 64 SCIP_EXPORT 65 const char* SCIPcutselGetDesc( 66 SCIP_CUTSEL* cutsel /**< cut selector */ 67 ); 68 69 /** gets priority of cut selector */ 70 SCIP_EXPORT 71 int SCIPcutselGetPriority( 72 SCIP_CUTSEL* cutsel /**< cut selector */ 73 ); 74 75 /** sets user data of cut selector; user has to free old data in advance! */ 76 SCIP_EXPORT 77 void SCIPcutselSetData( 78 SCIP_CUTSEL* cutsel, /**< cut selector */ 79 SCIP_CUTSELDATA* cutseldata /**< new cut selector user data */ 80 ); 81 82 /** is cut selector initialized? */ 83 SCIP_EXPORT 84 SCIP_Bool SCIPcutselIsInitialized( 85 SCIP_CUTSEL* cutsel /**< cut selector */ 86 ); 87 88 /** gets time in seconds used in this cut selector for setting up for next stages */ 89 SCIP_EXPORT 90 SCIP_Real SCIPcutselGetSetupTime( 91 SCIP_CUTSEL* cutsel /**< cut selector */ 92 ); 93 94 /** gets time in seconds used in this cut selector */ 95 SCIP_EXPORT 96 SCIP_Real SCIPcutselGetTime( 97 SCIP_CUTSEL* cutsel /**< cut selector */ 98 ); 99 100 /** get number of times the cutselector was called */ 101 SCIP_Longint SCIPcutselGetNCalls( 102 SCIP_CUTSEL* cutsel /**< cut selector */ 103 ); 104 105 /** get number of times the cutselector was called at the root */ 106 SCIP_Longint SCIPcutselGetNRootCalls( 107 SCIP_CUTSEL* cutsel /**< cut selector */ 108 ); 109 110 /** get total number of cuts that were selected at the root */ 111 SCIP_Longint SCIPcutselGetNRootCuts( 112 SCIP_CUTSEL* cutsel /**< cut selector */ 113 ); 114 115 /** get total number of forced cuts that were selected at the root */ 116 SCIP_Longint SCIPcutselGetNRootForcedCuts( 117 SCIP_CUTSEL* cutsel /**< cut selector */ 118 ); 119 120 /** get total number of root cuts that were filtered */ 121 SCIP_Longint SCIPcutselGetNRootCutsFiltered( 122 SCIP_CUTSEL* cutsel /**< cut selector */ 123 ); 124 125 /** get total number of local cuts that were selected */ 126 SCIP_Longint SCIPcutselGetNLocalCuts( 127 SCIP_CUTSEL* cutsel /**< cut selector */ 128 ); 129 130 /** get total number of forced local cuts that were selected */ 131 SCIP_Longint SCIPcutselGetNLocalForcedCuts( 132 SCIP_CUTSEL* cutsel /**< cut selector */ 133 ); 134 135 /** get total number of local cuts that were filtered */ 136 SCIP_Longint SCIPcutselGetNLocalCutsFiltered( 137 SCIP_CUTSEL* cutsel /**< cut selector */ 138 ); 139 140 /** compares two cut selectors w. r. to their priority */ 141 SCIP_EXPORT 142 SCIP_DECL_SORTPTRCOMP(SCIPcutselComp); 143 144 /** @} */ 145 146 #ifdef __cplusplus 147 } 148 #endif 149 150 #endif 151