Toggle navigation
SCIP Optimization Suite
SCIP
SoPlex
ZIMPL
UG
GCG
Documentation
SCIP 9.2.0
SCIP 8.1.0
SCIP 7.0.3
SCIP 6.0.2
SCIP 5.0.1
SCIP 4.0.1
SCIP 3.2.1
SCIP
Solving Constraint Integer Programs
symmetry
struct_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-2018 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 email to scip@zib.de. */
13
/* */
14
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15
16
/**@file struct_symmetry.h
17
* @brief structs 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_STRUCT_SYMMETRY_H_
24
#define __SCIP_STRUCT_SYMMETRY_H_
25
26
#include "
scip/scip.h
"
27
#include "
symmetry/type_symmetry.h
"
28
29
#ifdef __cplusplus
30
extern
"C"
{
31
#endif
32
33
/** data of variables that are considered to be equivalent */
34
struct
SYM_Vartype
35
{
36
SCIP_Real
obj
;
/**< objective of variable */
37
SCIP_Real
lb
;
/**< lower bound of variable */
38
SCIP_Real
ub
;
/**< upper bound of variable */
39
SCIP_VARTYPE
type
;
/**< type of variable */
40
int
color
;
/**< store color */
41
};
42
43
/** data for symmetry group computation */
44
struct
SYM_Matrixdata
45
{
46
SCIP_Real
*
matcoef
;
/**< nonzero coefficients appearing in the matrix */
47
SCIP_Real
*
rhscoef
;
/**< rhs coefficients */
48
SYM_RHSSENSE
*
rhssense
;
/**< sense of rhs */
49
int
*
matrhsidx
;
/**< indices of rhs corresponding to matrix entries */
50
int
*
matvaridx
;
/**< indices of variables for matrix entries */
51
int
*
matidx
;
/**< indices in mat(rhs/var)idx array corresponding to matrix coefficients */
52
int
*
rhsidx
;
/**< indices in rhstype array corresponding to rhs coefficients */
53
int
*
permvarcolors
;
/**< array for storing the colors of the individual variables */
54
int
*
matcoefcolors
;
/**< array for storing the colors of all matrix coefficients */
55
int
*
rhscoefcolors
;
/**< array for storing the colors of all rhs coefficients */
56
SCIP_VAR
**
permvars
;
/**< variables on which permutations act */
57
int
npermvars
;
/**< number of variables for permutations */
58
int
nmatcoef
;
/**< number of coefficients in matrix */
59
int
nrhscoef
;
/**< number of coefficients in rhs */
60
int
nmaxmatcoef
;
/**< maximal number of matrix coefficients (will be increase on demand) */
61
int
nuniquevars
;
/**< number of unique variable types */
62
int
nuniquerhs
;
/**< number of unique rhs types */
63
int
nuniquemat
;
/**< number of unique matrix coefficients */
64
};
65
66
#ifdef __cplusplus
67
}
68
#endif
69
70
#endif
SYM_Matrixdata::matcoefcolors
int * matcoefcolors
Definition:
struct_symmetry.h:54
SYM_Matrixdata::matcoef
SCIP_Real * matcoef
Definition:
struct_symmetry.h:46
SYM_Matrixdata::nuniquevars
int nuniquevars
Definition:
struct_symmetry.h:61
SCIP_Var
Definition:
struct_var.h:198
SYM_Matrixdata::nrhscoef
int nrhscoef
Definition:
struct_symmetry.h:59
SYM_Matrixdata::rhsidx
int * rhsidx
Definition:
struct_symmetry.h:52
SYM_Matrixdata::matrhsidx
int * matrhsidx
Definition:
struct_symmetry.h:49
SYM_Matrixdata::permvars
SCIP_VAR ** permvars
Definition:
struct_symmetry.h:56
SYM_Vartype
Definition:
struct_symmetry.h:34
SYM_Vartype::ub
SCIP_Real ub
Definition:
struct_symmetry.h:38
SYM_Matrixdata::rhssense
SYM_RHSSENSE * rhssense
Definition:
struct_symmetry.h:48
SYM_Matrixdata::matidx
int * matidx
Definition:
struct_symmetry.h:51
SYM_Matrixdata::nmatcoef
int nmatcoef
Definition:
struct_symmetry.h:58
SYM_Matrixdata::matvaridx
int * matvaridx
Definition:
struct_symmetry.h:50
SYM_Matrixdata::rhscoefcolors
int * rhscoefcolors
Definition:
struct_symmetry.h:55
SYM_Vartype::color
int color
Definition:
struct_symmetry.h:40
SYM_Vartype::lb
SCIP_Real lb
Definition:
struct_symmetry.h:37
SYM_Vartype::type
SCIP_VARTYPE type
Definition:
struct_symmetry.h:39
SYM_Matrixdata::nuniquemat
int nuniquemat
Definition:
struct_symmetry.h:63
SYM_RHSSENSE
enum SYM_Rhssense SYM_RHSSENSE
Definition:
type_symmetry.h:49
type_symmetry.h
type definitions for symmetry computations
SCIP_Real
#define SCIP_Real
Definition:
def.h:149
SYM_Matrixdata
Definition:
struct_symmetry.h:44
SYM_Matrixdata::permvarcolors
int * permvarcolors
Definition:
struct_symmetry.h:53
SCIP_VARTYPE
enum SCIP_Vartype SCIP_VARTYPE
Definition:
type_var.h:60
SYM_Matrixdata::nmaxmatcoef
int nmaxmatcoef
Definition:
struct_symmetry.h:60
SYM_Matrixdata::npermvars
int npermvars
Definition:
struct_symmetry.h:57
SYM_Vartype::obj
SCIP_Real obj
Definition:
struct_symmetry.h:36
SYM_Matrixdata::rhscoef
SCIP_Real * rhscoef
Definition:
struct_symmetry.h:47
scip.h
SCIP callable library.
SYM_Matrixdata::nuniquerhs
int nuniquerhs
Definition:
struct_symmetry.h:62