## Detailed Description

type definitions for relaxators

Definition in file type_relax.h.

`#include "scip/def.h"`

`#include "scip/type_retcode.h"`

`#include "scip/type_result.h"`

`#include "scip/type_scip.h"`

Go to the source code of this file.

## Macros | |

#define | SCIP_DECL_RELAXCOPY(x) SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

#define | SCIP_DECL_RELAXFREE(x) SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

#define | SCIP_DECL_RELAXINIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

#define | SCIP_DECL_RELAXEXIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

#define | SCIP_DECL_RELAXINITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

#define | SCIP_DECL_RELAXEXITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

#define | SCIP_DECL_RELAXEXEC(x) SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax, SCIP_Real* lowerbound, SCIP_RESULT* result) |

## Typedefs | |

typedef struct SCIP_Relax | SCIP_RELAX |

typedef struct SCIP_Relaxation | SCIP_RELAXATION |

typedef struct SCIP_RelaxData | SCIP_RELAXDATA |

## Macro Definition Documentation

## ◆ SCIP_DECL_RELAXCOPY

#define SCIP_DECL_RELAXCOPY | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

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

input:

- scip : SCIP main data structure
- relax : the relaxator itself

Definition at line 56 of file type_relax.h.

## ◆ SCIP_DECL_RELAXFREE

#define SCIP_DECL_RELAXFREE | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

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

input:

- scip : SCIP main data structure
- relax : the relaxator itself

Definition at line 64 of file type_relax.h.

## ◆ SCIP_DECL_RELAXINIT

#define SCIP_DECL_RELAXINIT | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

initialization method of relaxator (called after problem was transformed)

input:

- scip : SCIP main data structure
- relax : the relaxator itself

Definition at line 72 of file type_relax.h.

## ◆ SCIP_DECL_RELAXEXIT

#define SCIP_DECL_RELAXEXIT | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

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

input:

- scip : SCIP main data structure
- relax : the relaxator itself

Definition at line 80 of file type_relax.h.

## ◆ SCIP_DECL_RELAXINITSOL

#define SCIP_DECL_RELAXINITSOL | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

solving process initialization method of relaxator (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 relaxator may use this call to initialize its branch and bound specific data.

input:

- scip : SCIP main data structure
- relax : the relaxator itself

Definition at line 91 of file type_relax.h.

## ◆ SCIP_DECL_RELAXEXITSOL

#define SCIP_DECL_RELAXEXITSOL | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax) |

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

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

input:

- scip : SCIP main data structure
- relax : the relaxator itself

Definition at line 102 of file type_relax.h.

## ◆ SCIP_DECL_RELAXEXEC

#define SCIP_DECL_RELAXEXEC | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_RELAX* relax, SCIP_Real* lowerbound, SCIP_RESULT* result) |

execution method of relaxator

The method is called in the node processing loop. It solves the current subproblem's relaxation. Like the LP relaxation, the relaxator should only operate on COLUMN variables.

input:

- scip : SCIP main data structure
- relax : the relaxator itself
- lowerbound : pointer to store a lowerbound for the current node
- result : pointer to store the result of the relaxation call

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, and the relaxator should not be called again on the same relaxation
- SCIP_REDUCEDDOM : a variable's domain was reduced, and the relaxator should not be called again on the same relaxation
- SCIP_SEPARATED : a cutting plane was generated, and the relaxator should not be called again on the same relaxation
- SCIP_SUCCESS : the relaxator solved the relaxation and should not be called again on the same relaxation
- SCIP_SUSPENDED : the relaxator interrupted its solving process to wait for additional input (e.g. cutting planes); however, it is able to continue the solving in order to improve the dual bound
- SCIP_DIDNOTRUN : the relaxator was skipped

Definition at line 127 of file type_relax.h.

## Typedef Documentation

## ◆ SCIP_RELAX

typedef struct SCIP_Relax SCIP_RELAX |

relaxator

Definition at line 45 of file type_relax.h.

## ◆ SCIP_RELAXATION

typedef struct SCIP_Relaxation SCIP_RELAXATION |

relaxator

Definition at line 46 of file type_relax.h.

## ◆ SCIP_RELAXDATA

typedef struct SCIP_RelaxData SCIP_RELAXDATA |

locally defined relaxator data

Definition at line 47 of file type_relax.h.