SCIP Doxygen Documentation
Loading...
Searching...
No Matches
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-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 struct_symmetry.h
26
* @brief structs for symmetry computations
27
* @author Marc Pfetsch
28
*/
29
30
/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
31
32
#ifndef __SCIP_STRUCT_SYMMETRY_H_
33
#define __SCIP_STRUCT_SYMMETRY_H_
34
35
#include "
scip/scip.h
"
36
#include "
symmetry/type_symmetry.h
"
37
#include "
scip/type_expr.h
"
38
39
#ifdef __cplusplus
40
extern
"C"
{
41
#endif
42
43
/** data of variables that are considered to be equivalent */
44
struct
SYM_Vartype
45
{
46
SCIP_Real
obj
;
/**< objective of variable */
47
SCIP_Real
lb
;
/**< lower bound of variable */
48
SCIP_Real
ub
;
/**< upper bound of variable */
49
SCIP_VARTYPE
type
;
/**< type of variable */
50
int
nconss
;
/**< number of conss a variable is contained in */
51
int
color
;
/**< store color */
52
};
53
54
/** data of operators that are considered to be equivalent */
55
struct
SYM_Optype
56
{
57
SCIP_EXPR
*
expr
;
/**< the underlying expression */
58
int
level
;
/**< level of operator in its expression tree */
59
int
color
;
/**< store color */
60
};
61
62
/** data of constants that are considered to be equivalent */
63
struct
SYM_Consttype
64
{
65
SCIP_Real
value
;
/**< value of constant */
66
int
color
;
/**< store color */
67
};
68
69
/** data of coefficients that are considered to be equivalent */
70
struct
SYM_Rhstype
71
{
72
SCIP_Real
lhs
;
/**< value of left-hand-side */
73
SCIP_Real
rhs
;
/**< value of right-hand-side */
74
int
color
;
/**< store color */
75
};
76
77
/** data for symmetry group computation on linear constraints */
78
struct
SYM_Matrixdata
79
{
80
SCIP_Real*
matcoef
;
/**< nonzero coefficients appearing in the matrix */
81
SCIP_Real*
rhscoef
;
/**< rhs coefficients */
82
SYM_RHSSENSE
*
rhssense
;
/**< sense of rhs */
83
int
*
matrhsidx
;
/**< indices of rhs corresponding to matrix entries */
84
int
*
matvaridx
;
/**< indices of variables for matrix entries */
85
int
*
matidx
;
/**< indices in mat(rhs/var)idx array corresponding to matrix coefficients */
86
int
*
rhsidx
;
/**< indices in rhstype array corresponding to rhs coefficients */
87
int
*
permvarcolors
;
/**< array for storing the colors of the individual variables */
88
int
*
matcoefcolors
;
/**< array for storing the colors of all matrix coefficients */
89
int
*
rhscoefcolors
;
/**< array for storing the colors of all rhs coefficients */
90
SCIP_VAR
**
permvars
;
/**< variables on which permutations act */
91
int
npermvars
;
/**< number of variables for permutations */
92
int
nmatcoef
;
/**< number of coefficients in matrix */
93
int
nrhscoef
;
/**< number of coefficients in rhs */
94
int
nmaxmatcoef
;
/**< maximal number of matrix coefficients (will be increased on demand) */
95
int
nuniquevars
;
/**< number of unique variable types */
96
int
nuniquerhs
;
/**< number of unique rhs types */
97
int
nuniquemat
;
/**< number of unique matrix coefficients */
98
};
99
100
/** data for symmetry group computation on nonlinear constraints */
101
struct
SYM_Exprdata
102
{
103
int
nuniqueconstants
;
/**< number of unique constants */
104
int
nuniqueoperators
;
/**< number of unique operators */
105
int
nuniquecoefs
;
/**< number of unique coefficients */
106
};
107
108
#ifdef __cplusplus
109
}
110
#endif
111
112
#endif
scip.h
SCIP callable library.
SCIP_Expr
Definition
struct_expr.h:105
SCIP_Var
Definition
struct_var.h:208
SYM_Consttype
Definition
struct_symmetry.h:64
SYM_Consttype::value
SCIP_Real value
Definition
struct_symmetry.h:65
SYM_Consttype::color
int color
Definition
struct_symmetry.h:66
SYM_Exprdata
Definition
struct_symmetry.h:102
SYM_Exprdata::nuniquecoefs
int nuniquecoefs
Definition
struct_symmetry.h:105
SYM_Exprdata::nuniqueconstants
int nuniqueconstants
Definition
struct_symmetry.h:103
SYM_Exprdata::nuniqueoperators
int nuniqueoperators
Definition
struct_symmetry.h:104
SYM_Matrixdata
Definition
struct_symmetry.h:79
SYM_Matrixdata::matcoef
SCIP_Real * matcoef
Definition
struct_symmetry.h:80
SYM_Matrixdata::permvars
SCIP_VAR ** permvars
Definition
struct_symmetry.h:90
SYM_Matrixdata::rhssense
SYM_RHSSENSE * rhssense
Definition
struct_symmetry.h:82
SYM_Matrixdata::nmaxmatcoef
int nmaxmatcoef
Definition
struct_symmetry.h:94
SYM_Matrixdata::permvarcolors
int * permvarcolors
Definition
struct_symmetry.h:87
SYM_Matrixdata::nuniquerhs
int nuniquerhs
Definition
struct_symmetry.h:96
SYM_Matrixdata::nuniquevars
int nuniquevars
Definition
struct_symmetry.h:95
SYM_Matrixdata::nuniquemat
int nuniquemat
Definition
struct_symmetry.h:97
SYM_Matrixdata::matcoefcolors
int * matcoefcolors
Definition
struct_symmetry.h:88
SYM_Matrixdata::matvaridx
int * matvaridx
Definition
struct_symmetry.h:84
SYM_Matrixdata::rhsidx
int * rhsidx
Definition
struct_symmetry.h:86
SYM_Matrixdata::rhscoefcolors
int * rhscoefcolors
Definition
struct_symmetry.h:89
SYM_Matrixdata::nmatcoef
int nmatcoef
Definition
struct_symmetry.h:92
SYM_Matrixdata::rhscoef
SCIP_Real * rhscoef
Definition
struct_symmetry.h:81
SYM_Matrixdata::npermvars
int npermvars
Definition
struct_symmetry.h:91
SYM_Matrixdata::matrhsidx
int * matrhsidx
Definition
struct_symmetry.h:83
SYM_Matrixdata::matidx
int * matidx
Definition
struct_symmetry.h:85
SYM_Matrixdata::nrhscoef
int nrhscoef
Definition
struct_symmetry.h:93
SYM_Optype
Definition
struct_symmetry.h:56
SYM_Optype::level
int level
Definition
struct_symmetry.h:58
SYM_Optype::color
int color
Definition
struct_symmetry.h:59
SYM_Optype::expr
SCIP_EXPR * expr
Definition
struct_symmetry.h:57
SYM_Rhstype
Definition
struct_symmetry.h:71
SYM_Rhstype::lhs
SCIP_Real lhs
Definition
struct_symmetry.h:72
SYM_Rhstype::rhs
SCIP_Real rhs
Definition
struct_symmetry.h:73
SYM_Rhstype::color
int color
Definition
struct_symmetry.h:74
SYM_Vartype
Definition
struct_symmetry.h:45
SYM_Vartype::type
SCIP_VARTYPE type
Definition
struct_symmetry.h:49
SYM_Vartype::color
int color
Definition
struct_symmetry.h:51
SYM_Vartype::lb
SCIP_Real lb
Definition
struct_symmetry.h:47
SYM_Vartype::nconss
int nconss
Definition
struct_symmetry.h:50
SYM_Vartype::ub
SCIP_Real ub
Definition
struct_symmetry.h:48
SYM_Vartype::obj
SCIP_Real obj
Definition
struct_symmetry.h:46
type_expr.h
type and macro definitions related to algebraic expressions
type_symmetry.h
type definitions for symmetry computations
SYM_RHSSENSE
enum SYM_Rhssense SYM_RHSSENSE
Definition
type_symmetry.h:65
SCIP_VARTYPE
enum SCIP_Vartype SCIP_VARTYPE
Definition
type_var.h:73
symmetry
struct_symmetry.h
© 2002-2023 by Zuse Institute Berlin (ZIB),
Imprint
Generated by
1.10.0