Scippy

SCIP

Solving Constraint Integer Programs

type_symmetry.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2019 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 scip.zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file type_symmetry.h
17  * @brief type definitions for symmetry computations
18  * @author Marc Pfetsch
19  */
20 
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
22 
23 #ifndef __SCIP_TYPE_SYMMETRY_H_
24 #define __SCIP_TYPE_SYMMETRY_H_
25 
26 #include <scip/scip.h>
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 /** symmetry type specification */
33 #define SYM_SPEC_INTEGER UINT32_C(0x00000001) /**< need symmetries for integer variables only */
34 #define SYM_SPEC_BINARY UINT32_C(0x00000002) /**< need symmetries for binary variables only */
35 #define SYM_SPEC_REAL UINT32_C(0x00000004) /**< need symmetries also for continuous variables */
36 
37 typedef uint32_t SYM_SPEC; /**< types of variables handled by symmetry */
38 
39 /** define sense of rhs */
41 {
42  SYM_SENSE_UNKOWN = 0, /**< unknown sense */
43  SYM_SENSE_INEQUALITY = 1, /**< linear inequality */
44  SYM_SENSE_EQUATION = 2, /**< linear equation */
45  SYM_SENSE_XOR = 3, /**< XOR constraint */
46  SYM_SENSE_AND = 4, /**< AND constraint */
47  SYM_SENSE_OR = 5 /**< OR constrant */
48 };
50 
51 /* type of symmetry handling codes */
52 #define SYM_HANDLETYPE_NONE UINT32_C(0x00000000) /**< no symmetry handling */
53 #define SYM_HANDLETYPE_SYMBREAK UINT32_C(0x00000001) /**< symmetry breaking inequalities */
54 #define SYM_HANDLETYPE_ORBITALFIXING UINT32_C(0x00000002) /**< orbital fixing */
55 
56 typedef uint32_t SYM_HANDLETYPE; /**< type of symmetry handling */
57 
58 typedef struct SYM_Vartype SYM_VARTYPE; /**< data of variables that are considered to be equivalent */
59 typedef struct SYM_Matrixdata SYM_MATRIXDATA;/**< data for symmetry group computation */
60 
61 #ifdef __cplusplus
62 }
63 #endif
64 
65 #endif
uint32_t SYM_SPEC
Definition: type_symmetry.h:37
SYM_Rhssense
Definition: type_symmetry.h:40
enum SYM_Rhssense SYM_RHSSENSE
Definition: type_symmetry.h:49
uint32_t SYM_HANDLETYPE
Definition: type_symmetry.h:56
SCIP callable library.