## Detailed Description

type definitions for separators

Definition in file type_sepa.h.

`#include "scip/def.h"`

`#include "scip/type_retcode.h"`

`#include "scip/type_result.h"`

`#include "scip/type_sol.h"`

`#include "scip/type_scip.h"`

Go to the source code of this file.

## Macros | |

#define | SCIP_DECL_SEPACOPY(x) SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

#define | SCIP_DECL_SEPAFREE(x) SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

#define | SCIP_DECL_SEPAINIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

#define | SCIP_DECL_SEPAEXIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

#define | SCIP_DECL_SEPAINITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

#define | SCIP_DECL_SEPAEXITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

#define | SCIP_DECL_SEPAEXECLP(x) SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa, SCIP_RESULT* result, SCIP_Bool allowlocal) |

#define | SCIP_DECL_SEPAEXECSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa, SCIP_SOL* sol, SCIP_RESULT* result, SCIP_Bool allowlocal) |

## Typedefs | |

typedef struct SCIP_Sepa | SCIP_SEPA |

typedef struct SCIP_SepaData | SCIP_SEPADATA |

## Macro Definition Documentation

## ◆ SCIP_DECL_SEPACOPY

#define SCIP_DECL_SEPACOPY | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

copy method for separator plugins (called when SCIP copies plugins)

input:

- scip : SCIP main data structure
- sepa : the separator itself

Definition at line 52 of file type_sepa.h.

## ◆ SCIP_DECL_SEPAFREE

#define SCIP_DECL_SEPAFREE | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

destructor of separator to free user data (called when SCIP is exiting)

input:

- scip : SCIP main data structure
- sepa : the separator itself

Definition at line 60 of file type_sepa.h.

## ◆ SCIP_DECL_SEPAINIT

#define SCIP_DECL_SEPAINIT | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

initialization method of separator (called after problem was transformed)

input:

- scip : SCIP main data structure
- sepa : the separator itself

Definition at line 68 of file type_sepa.h.

## ◆ SCIP_DECL_SEPAEXIT

#define SCIP_DECL_SEPAEXIT | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

deinitialization method of separator (called before transformed problem is freed)

input:

- scip : SCIP main data structure
- sepa : the separator itself

Definition at line 76 of file type_sepa.h.

## ◆ SCIP_DECL_SEPAINITSOL

#define SCIP_DECL_SEPAINITSOL | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

solving process initialization method of separator (called when branch and bound process is about to begin)

This method is called when the presolving was finished and the branch and bound process is about to begin. The separator may use this call to initialize its branch and bound specific data.

input:

- scip : SCIP main data structure
- sepa : the separator itself

Definition at line 87 of file type_sepa.h.

## ◆ SCIP_DECL_SEPAEXITSOL

#define SCIP_DECL_SEPAEXITSOL | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa) |

solving process deinitialization method of separator (called before branch and bound process data is freed)

This method is called before the branch and bound process is freed. The separator should use this call to clean up its branch and bound data.

input:

- scip : SCIP main data structure
- sepa : the separator itself

Definition at line 98 of file type_sepa.h.

## ◆ SCIP_DECL_SEPAEXECLP

#define SCIP_DECL_SEPAEXECLP | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa, SCIP_RESULT* result, SCIP_Bool allowlocal) |

LP solution separation method of separator

Searches for cutting planes that separate the current LP solution. The method is called in the LP solving loop, which means that a valid LP solution exists.

input:

- scip : SCIP main data structure
- sepa : the separator itself
- result : pointer to store the result of the separation call
- allowlocal : should the separator allow local cuts?

possible return values for *result (if more than one applies, the first in the list should be used):

- SCIP_CUTOFF : the node is infeasible in the variable's bounds and can be cut off
- SCIP_CONSADDED : an additional constraint was generated
- SCIP_REDUCEDDOM : a variable's domain was reduced
- SCIP_SEPARATED : a cutting plane was generated
- SCIP_NEWROUND : a cutting plane was generated and a new separation round should immediately start
- SCIP_DIDNOTFIND : the separator searched, but did not find domain reductions, cutting planes, or cut constraints
- SCIP_DIDNOTRUN : the separator was skipped
- SCIP_DELAYED : the separator was skipped, but should be called again

Definition at line 121 of file type_sepa.h.

## ◆ SCIP_DECL_SEPAEXECSOL

#define SCIP_DECL_SEPAEXECSOL | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_SEPA* sepa, SCIP_SOL* sol, SCIP_RESULT* result, SCIP_Bool allowlocal) |

arbitrary primal solution separation method of separator

Searches for cutting planes that separate the given primal solution. The method is called outside the LP solution loop (e.g., by a relaxator or a primal heuristic), which means that there is no valid LP solution.

input:

- scip : SCIP main data structure
- sepa : the separator itself
- sol : primal solution that should be separated
- result : pointer to store the result of the separation call
- allowlocal : should the separator allow local cuts?

possible return values for *result (if more than one applies, the first in the list should be used):

- SCIP_CUTOFF : the node is infeasible in the variable's bounds and can be cut off
- SCIP_CONSADDED : an additional constraint was generated
- SCIP_REDUCEDDOM : a variable's domain was reduced
- SCIP_SEPARATED : a cutting plane was generated
- SCIP_NEWROUND : a cutting plane was generated and a new separation round should immediately start
- SCIP_DIDNOTFIND : the separator searched, but did not find domain reductions, cutting planes, or cut constraints
- SCIP_DIDNOTRUN : the separator was skipped
- SCIP_DELAYED : the separator was skipped, but should be called again

Definition at line 145 of file type_sepa.h.

## Typedef Documentation

## ◆ SCIP_SEPA

separator

Definition at line 42 of file type_sepa.h.

## ◆ SCIP_SEPADATA

typedef struct SCIP_SepaData SCIP_SEPADATA |

locally defined separator data

Definition at line 43 of file type_sepa.h.