1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /*                                                                           */
3 /*                  This file is part of the program and library             */
4 /*         SCIP --- Solving Constraint Integer Programs                      */
5 /*                                                                           */
6 /*    Copyright (C) 2002-2021 Konrad-Zuse-Zentrum                            */
7 /*                            fuer Informationstechnik Berlin                */
8 /*                                                                           */
9 /*  SCIP is distributed under the terms of the ZIB Academic License.         */
10 /*                                                                           */
11 /*  You should have received a copy of the ZIB Academic License              */
12 /*  along with SCIP; see the file COPYING. If not visit scipopt.org.         */
13 /*                                                                           */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file   prop_sync.h
17  * @ingroup PROPAGATORS
18  * @brief  propagator for applying global bound changes that were communicated by other
19  *         concurrent solvers
20  * @author Leona Gottwald
21  */
22 
23 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
24 
25 #ifndef __SCIP_PROP_SYNC_H__
26 #define __SCIP_PROP_SYNC_H__
27 
28 #include "scip/def.h"
29 #include "scip/type_lp.h"
30 #include "scip/type_prop.h"
31 #include "scip/type_retcode.h"
32 #include "scip/type_scip.h"
33 #include "scip/type_var.h"
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 /** creates the sync propagator and includes it in SCIP
40  *
41  * @ingroup PropagatorIncludes
42  */
43 SCIP_EXPORT
44 SCIP_RETCODE SCIPincludePropSync(
45    SCIP*                 scip                /**< SCIP data structure */
46    );
47 
48 /**@addtogroup PROPAGATORS
49   *
50   * @{
51   */
52 
53 /** adds a boundchange to the sync propagator */
54 SCIP_EXPORT
55 SCIP_RETCODE SCIPpropSyncAddBndchg(
56    SCIP*                 scip,               /**< SCIP data structure */
57    SCIP_PROP*            prop,               /**< sync propagator */
58    SCIP_VAR*             var,                /**< variable for bound */
59    SCIP_Real             val,                /**< value of bound */
60    SCIP_BOUNDTYPE        bndtype             /**< type of bound */
61    );
62 
63 /** gives the total number of tightened bounds found by the sync propagator */
64 SCIP_EXPORT
65 SCIP_Longint SCIPpropSyncGetNTightenedBnds(
66    SCIP_PROP*            prop                /**< sync propagator */
67    );
68 
69 /** gives the total number of tightened bounds for integer variables found by the sync propagator */
70 SCIP_EXPORT
71 SCIP_Longint SCIPpropSyncGetNTightenedIntBnds(
72    SCIP_PROP*            prop                /**< sync propagator */
73    );
74 
75 /** @} */
76 
77 #ifdef __cplusplus
78 }
79 #endif
80 
81 #endif
82