Scippy

    SCIP

    Solving Constraint Integer Programs

    scip_solvingstats.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-2025 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 scip_solvingstats.h
    26 * @ingroup PUBLICCOREAPI
    27 * @brief public methods for querying solving statistics
    28 * @author Tobias Achterberg
    29 * @author Timo Berthold
    30 * @author Thorsten Koch
    31 * @author Alexander Martin
    32 * @author Marc Pfetsch
    33 * @author Kati Wolter
    34 * @author Gregor Hendel
    35 * @author Leona Gottwald
    36 */
    37
    38/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
    39
    40#ifndef __SCIP_SCIP_SOLVINGSTATS_H__
    41#define __SCIP_SCIP_SOLVINGSTATS_H__
    42
    43
    44#include "scip/def.h"
    45#include "scip/type_history.h"
    46#include "scip/type_message.h"
    47#include "scip/type_rational.h"
    48#include "scip/type_retcode.h"
    49#include "scip/type_scip.h"
    50#include "scip/type_datatree.h"
    51
    52#ifdef __cplusplus
    53extern "C" {
    54#endif
    55
    56/**@addtogroup PublicSolvingStatsMethods
    57 *
    58 * @{
    59 */
    60
    61/** gets number of branch and bound runs performed, including the current run
    62 *
    63 * @return the number of branch and bound runs performed, including the current run
    64 *
    65 * @pre This method can be called if SCIP is in one of the following stages:
    66 * - \ref SCIP_STAGE_PROBLEM
    67 * - \ref SCIP_STAGE_TRANSFORMING
    68 * - \ref SCIP_STAGE_TRANSFORMED
    69 * - \ref SCIP_STAGE_INITPRESOLVE
    70 * - \ref SCIP_STAGE_PRESOLVING
    71 * - \ref SCIP_STAGE_EXITPRESOLVE
    72 * - \ref SCIP_STAGE_PRESOLVED
    73 * - \ref SCIP_STAGE_INITSOLVE
    74 * - \ref SCIP_STAGE_SOLVING
    75 * - \ref SCIP_STAGE_SOLVED
    76 * - \ref SCIP_STAGE_EXITSOLVE
    77 * - \ref SCIP_STAGE_FREETRANS
    78 */
    79SCIP_EXPORT
    80int SCIPgetNRuns(
    81 SCIP* scip /**< SCIP data structure */
    82 );
    83
    84/** gets number of reoptimization runs performed, including the current run
    85 *
    86 * @return the number of reoptimization runs performed, including the current run
    87 *
    88 * @pre This method can be called if SCIP is in one of the following stages:
    89 * - \ref SCIP_STAGE_PROBLEM
    90 * - \ref SCIP_STAGE_TRANSFORMING
    91 * - \ref SCIP_STAGE_TRANSFORMED
    92 * - \ref SCIP_STAGE_INITPRESOLVE
    93 * - \ref SCIP_STAGE_PRESOLVING
    94 * - \ref SCIP_STAGE_EXITPRESOLVE
    95 * - \ref SCIP_STAGE_PRESOLVED
    96 * - \ref SCIP_STAGE_INITSOLVE
    97 * - \ref SCIP_STAGE_SOLVING
    98 * - \ref SCIP_STAGE_SOLVED
    99 * - \ref SCIP_STAGE_EXITSOLVE
    100 * - \ref SCIP_STAGE_FREETRANS
    101 */
    102SCIP_EXPORT
    104 SCIP* scip /**< SCIP data structure */
    105 );
    106
    107/** add given number to the number of processed nodes in current run and in all runs, including the focus node
    108 *
    109 * @pre This method can be called if SCIP is in one of the following stages:
    110 * - \ref SCIP_STAGE_PROBLEM
    111 * - \ref SCIP_STAGE_TRANSFORMING
    112 * - \ref SCIP_STAGE_TRANSFORMED
    113 * - \ref SCIP_STAGE_INITPRESOLVE
    114 * - \ref SCIP_STAGE_PRESOLVING
    115 * - \ref SCIP_STAGE_EXITPRESOLVE
    116 * - \ref SCIP_STAGE_PRESOLVED
    117 * - \ref SCIP_STAGE_INITSOLVE
    118 * - \ref SCIP_STAGE_SOLVING
    119 * - \ref SCIP_STAGE_SOLVED
    120 * - \ref SCIP_STAGE_EXITSOLVE
    121 * - \ref SCIP_STAGE_FREETRANS
    122 */
    123SCIP_EXPORT
    124void SCIPaddNNodes(
    125 SCIP* scip, /**< SCIP data structure */
    126 SCIP_Longint nnodes /**< number of processed nodes to add to the statistics */
    127 );
    128
    129/** gets number of processed nodes in current run, including the focus node
    130 *
    131 * @return the number of processed nodes in current run, including the focus node
    132 *
    133 * @pre This method can be called if SCIP is in one of the following stages:
    134 * - \ref SCIP_STAGE_PROBLEM
    135 * - \ref SCIP_STAGE_TRANSFORMING
    136 * - \ref SCIP_STAGE_TRANSFORMED
    137 * - \ref SCIP_STAGE_INITPRESOLVE
    138 * - \ref SCIP_STAGE_PRESOLVING
    139 * - \ref SCIP_STAGE_EXITPRESOLVE
    140 * - \ref SCIP_STAGE_PRESOLVED
    141 * - \ref SCIP_STAGE_INITSOLVE
    142 * - \ref SCIP_STAGE_SOLVING
    143 * - \ref SCIP_STAGE_SOLVED
    144 * - \ref SCIP_STAGE_EXITSOLVE
    145 * - \ref SCIP_STAGE_FREETRANS
    146 */
    147SCIP_EXPORT
    149 SCIP* scip /**< SCIP data structure */
    150 );
    151
    152/** gets total number of processed nodes in all runs, including the focus node
    153 *
    154 * @return the total number of processed nodes in all runs, including the focus node
    155 *
    156 * @pre This method can be called if SCIP is in one of the following stages:
    157 * - \ref SCIP_STAGE_PROBLEM
    158 * - \ref SCIP_STAGE_TRANSFORMING
    159 * - \ref SCIP_STAGE_TRANSFORMED
    160 * - \ref SCIP_STAGE_INITPRESOLVE
    161 * - \ref SCIP_STAGE_PRESOLVING
    162 * - \ref SCIP_STAGE_EXITPRESOLVE
    163 * - \ref SCIP_STAGE_PRESOLVED
    164 * - \ref SCIP_STAGE_INITSOLVE
    165 * - \ref SCIP_STAGE_SOLVING
    166 * - \ref SCIP_STAGE_SOLVED
    167 * - \ref SCIP_STAGE_EXITSOLVE
    168 * - \ref SCIP_STAGE_FREETRANS
    169 */
    170SCIP_EXPORT
    172 SCIP* scip /**< SCIP data structure */
    173 );
    174
    175/** gets number of leaf nodes processed with feasible relaxation solution
    176 *
    177 * @return number of leaf nodes processed with feasible relaxation solution
    178 *
    179 * @pre This method can be called if SCIP is in one of the following stages:
    180 * - \ref SCIP_STAGE_PROBLEM
    181 * - \ref SCIP_STAGE_TRANSFORMING
    182 * - \ref SCIP_STAGE_TRANSFORMED
    183 * - \ref SCIP_STAGE_INITPRESOLVE
    184 * - \ref SCIP_STAGE_PRESOLVING
    185 * - \ref SCIP_STAGE_EXITPRESOLVE
    186 * - \ref SCIP_STAGE_PRESOLVED
    187 * - \ref SCIP_STAGE_INITSOLVE
    188 * - \ref SCIP_STAGE_SOLVING
    189 * - \ref SCIP_STAGE_SOLVED
    190 * - \ref SCIP_STAGE_EXITSOLVE
    191 * - \ref SCIP_STAGE_FREETRANS
    192 */
    193SCIP_EXPORT
    195 SCIP* scip /**< SCIP data structure */
    196 );
    197
    198/** gets number of infeasible leaf nodes processed
    199 *
    200 * @return number of infeasible leaf nodes processed
    201 *
    202 * @pre This method can be called if SCIP is in one of the following stages:
    203 * - \ref SCIP_STAGE_PROBLEM
    204 * - \ref SCIP_STAGE_TRANSFORMING
    205 * - \ref SCIP_STAGE_TRANSFORMED
    206 * - \ref SCIP_STAGE_INITPRESOLVE
    207 * - \ref SCIP_STAGE_PRESOLVING
    208 * - \ref SCIP_STAGE_EXITPRESOLVE
    209 * - \ref SCIP_STAGE_PRESOLVED
    210 * - \ref SCIP_STAGE_INITSOLVE
    211 * - \ref SCIP_STAGE_SOLVING
    212 * - \ref SCIP_STAGE_SOLVED
    213 * - \ref SCIP_STAGE_EXITSOLVE
    214 * - \ref SCIP_STAGE_FREETRANS
    215 */
    216SCIP_EXPORT
    218 SCIP* scip /**< SCIP data structure */
    219 );
    220
    221/** gets number of processed leaf nodes that hit LP objective limit
    222 *
    223 * @return number of processed leaf nodes that hit LP objective limit
    224 *
    225 * @pre This method can be called if SCIP is in one of the following stages:
    226 * - \ref SCIP_STAGE_PROBLEM
    227 * - \ref SCIP_STAGE_TRANSFORMING
    228 * - \ref SCIP_STAGE_TRANSFORMED
    229 * - \ref SCIP_STAGE_INITPRESOLVE
    230 * - \ref SCIP_STAGE_PRESOLVING
    231 * - \ref SCIP_STAGE_EXITPRESOLVE
    232 * - \ref SCIP_STAGE_PRESOLVED
    233 * - \ref SCIP_STAGE_INITSOLVE
    234 * - \ref SCIP_STAGE_SOLVING
    235 * - \ref SCIP_STAGE_SOLVED
    236 * - \ref SCIP_STAGE_EXITSOLVE
    237 * - \ref SCIP_STAGE_FREETRANS
    238 */
    239SCIP_EXPORT
    241 SCIP* scip /**< SCIP data structure */
    242 );
    243
    244/** gets number of global bound changes
    245 *
    246 * @return number of global bound changes
    247 *
    248 * @pre This method can be called if SCIP is in one of the following stages:
    249 * - \ref SCIP_STAGE_PROBLEM
    250 * - \ref SCIP_STAGE_TRANSFORMING
    251 * - \ref SCIP_STAGE_TRANSFORMED
    252 * - \ref SCIP_STAGE_INITPRESOLVE
    253 * - \ref SCIP_STAGE_PRESOLVING
    254 * - \ref SCIP_STAGE_EXITPRESOLVE
    255 * - \ref SCIP_STAGE_PRESOLVED
    256 * - \ref SCIP_STAGE_INITSOLVE
    257 * - \ref SCIP_STAGE_SOLVING
    258 * - \ref SCIP_STAGE_SOLVED
    259 * - \ref SCIP_STAGE_EXITSOLVE
    260 * - \ref SCIP_STAGE_FREETRANS
    261 */
    262SCIP_EXPORT
    264 SCIP* scip /**< Scip data structure */
    265 );
    266
    267/** gets number of global bound changes applied in the current run
    268 *
    269 * @return number of global bound changes
    270 *
    271 * @pre This method can be called if SCIP is in one of the following stages:
    272 * - \ref SCIP_STAGE_PROBLEM
    273 * - \ref SCIP_STAGE_TRANSFORMING
    274 * - \ref SCIP_STAGE_TRANSFORMED
    275 * - \ref SCIP_STAGE_INITPRESOLVE
    276 * - \ref SCIP_STAGE_PRESOLVING
    277 * - \ref SCIP_STAGE_EXITPRESOLVE
    278 * - \ref SCIP_STAGE_PRESOLVED
    279 * - \ref SCIP_STAGE_INITSOLVE
    280 * - \ref SCIP_STAGE_SOLVING
    281 * - \ref SCIP_STAGE_SOLVED
    282 * - \ref SCIP_STAGE_EXITSOLVE
    283 * - \ref SCIP_STAGE_FREETRANS
    284 */
    285SCIP_EXPORT
    287 SCIP* scip /**< Scip data structure */
    288 );
    289
    290/** gets number of global fixings applied in the current run
    291 *
    292 * @return number of global fixings
    293 *
    294 * @pre This method can be called if SCIP is in one of the following stages:
    295 * - \ref SCIP_STAGE_PROBLEM
    296 * - \ref SCIP_STAGE_TRANSFORMING
    297 * - \ref SCIP_STAGE_TRANSFORMED
    298 * - \ref SCIP_STAGE_INITPRESOLVE
    299 * - \ref SCIP_STAGE_PRESOLVING
    300 * - \ref SCIP_STAGE_EXITPRESOLVE
    301 * - \ref SCIP_STAGE_PRESOLVED
    302 * - \ref SCIP_STAGE_INITSOLVE
    303 * - \ref SCIP_STAGE_SOLVING
    304 * - \ref SCIP_STAGE_SOLVED
    305 * - \ref SCIP_STAGE_EXITSOLVE
    306 * - \ref SCIP_STAGE_FREETRANS
    307*/
    308SCIP_EXPORT
    310 SCIP* scip /**< Scip data structure */
    311 );
    312
    313/** gets number of times a selected node was from a cut off subtree
    314 *
    315 * @return number of times a selected node was from a cut off subtree
    316 *
    317 * @pre This method can be called if SCIP is in one of the following stages:
    318 * - \ref SCIP_STAGE_PROBLEM
    319 * - \ref SCIP_STAGE_TRANSFORMING
    320 * - \ref SCIP_STAGE_TRANSFORMED
    321 * - \ref SCIP_STAGE_INITPRESOLVE
    322 * - \ref SCIP_STAGE_PRESOLVING
    323 * - \ref SCIP_STAGE_EXITPRESOLVE
    324 * - \ref SCIP_STAGE_PRESOLVED
    325 * - \ref SCIP_STAGE_INITSOLVE
    326 * - \ref SCIP_STAGE_SOLVING
    327 * - \ref SCIP_STAGE_SOLVED
    328 * - \ref SCIP_STAGE_EXITSOLVE
    329 * - \ref SCIP_STAGE_FREETRANS
    330 */
    331SCIP_EXPORT
    333 SCIP* scip /**< SCIP data structure */
    334 );
    335
    336/** gets total number of LPs solved so far
    337 *
    338 * @return the total number of LPs solved so far
    339 *
    340 * @pre This method can be called if SCIP is in one of the following stages:
    341 * - \ref SCIP_STAGE_PROBLEM
    342 * - \ref SCIP_STAGE_TRANSFORMING
    343 * - \ref SCIP_STAGE_TRANSFORMED
    344 * - \ref SCIP_STAGE_INITPRESOLVE
    345 * - \ref SCIP_STAGE_PRESOLVING
    346 * - \ref SCIP_STAGE_EXITPRESOLVE
    347 * - \ref SCIP_STAGE_PRESOLVED
    348 * - \ref SCIP_STAGE_INITSOLVE
    349 * - \ref SCIP_STAGE_SOLVING
    350 * - \ref SCIP_STAGE_SOLVED
    351 * - \ref SCIP_STAGE_EXITSOLVE
    352 * - \ref SCIP_STAGE_FREETRANS
    353 */
    354SCIP_EXPORT
    356 SCIP* scip /**< SCIP data structure */
    357 );
    358
    359/** gets number of calls to the exact LP solver
    360 *
    361 * @return the number of calls to the exact LP solver
    362 *
    363 * @pre This method can be called if SCIP is in one of the following stages:
    364 * - \ref SCIP_STAGE_PROBLEM
    365 * - \ref SCIP_STAGE_TRANSFORMING
    366 * - \ref SCIP_STAGE_TRANSFORMED
    367 * - \ref SCIP_STAGE_INITPRESOLVE
    368 * - \ref SCIP_STAGE_PRESOLVING
    369 * - \ref SCIP_STAGE_EXITPRESOLVE
    370 * - \ref SCIP_STAGE_PRESOLVED
    371 * - \ref SCIP_STAGE_INITSOLVE
    372 * - \ref SCIP_STAGE_SOLVING
    373 * - \ref SCIP_STAGE_SOLVED
    374 * - \ref SCIP_STAGE_EXITSOLVE
    375 * - \ref SCIP_STAGE_FREETRANS
    376 */
    377SCIP_EXPORT
    379 SCIP* scip /**< SCIP data structure */
    380 );
    381
    382/** gets total number of iterations used so far in primal and dual simplex and barrier algorithm
    383 *
    384 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm
    385 *
    386 * @pre This method can be called if SCIP is in one of the following stages:
    387 * - \ref SCIP_STAGE_PRESOLVING
    388 * - \ref SCIP_STAGE_PRESOLVED
    389 * - \ref SCIP_STAGE_SOLVING
    390 * - \ref SCIP_STAGE_SOLVED
    391 */
    392SCIP_EXPORT
    394 SCIP* scip /**< SCIP data structure */
    395 );
    396
    397/** gets number of active non-zeros in the current transformed problem
    398 *
    399 * @return the number of active non-zeros in the current transformed problem
    400 *
    401 * @pre This method can be called if SCIP is in one of the following stages:
    402 * - \ref SCIP_STAGE_PROBLEM
    403 * - \ref SCIP_STAGE_TRANSFORMING
    404 * - \ref SCIP_STAGE_TRANSFORMED
    405 * - \ref SCIP_STAGE_INITPRESOLVE
    406 * - \ref SCIP_STAGE_PRESOLVING
    407 * - \ref SCIP_STAGE_EXITPRESOLVE
    408 * - \ref SCIP_STAGE_PRESOLVED
    409 * - \ref SCIP_STAGE_INITSOLVE
    410 * - \ref SCIP_STAGE_SOLVING
    411 * - \ref SCIP_STAGE_SOLVED
    412 * - \ref SCIP_STAGE_EXITSOLVE
    413 */
    414SCIP_EXPORT
    416 SCIP* scip /**< SCIP data structure */
    417 );
    418
    419
    420/** gets total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
    421 *
    422 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
    423 *
    424 * @pre This method can be called if SCIP is in one of the following stages:
    425 * - \ref SCIP_STAGE_PRESOLVED
    426 * - \ref SCIP_STAGE_SOLVING
    427 * - \ref SCIP_STAGE_SOLVED
    428 */
    429SCIP_EXPORT
    431 SCIP* scip /**< SCIP data structure */
    432 );
    433
    434/** gets total number of iterations used in primal and dual simplex and barrier algorithm for the first LP at the root
    435 * node
    436 *
    437 * @return the total number of iterations used in primal and dual simplex and barrier algorithm for the first root LP
    438 *
    439 * @pre This method can be called if SCIP is in one of the following stages:
    440 * - \ref SCIP_STAGE_PRESOLVED
    441 * - \ref SCIP_STAGE_SOLVING
    442 * - \ref SCIP_STAGE_SOLVED
    443 */
    444SCIP_EXPORT
    446 SCIP* scip /**< SCIP data structure */
    447 );
    448
    449/** gets total number of primal LPs solved so far
    450 *
    451 * @return the total number of primal LPs solved so far
    452 *
    453 * @pre This method can be called if SCIP is in one of the following stages:
    454 * - \ref SCIP_STAGE_PRESOLVED
    455 * - \ref SCIP_STAGE_SOLVING
    456 * - \ref SCIP_STAGE_SOLVED
    457 */
    458SCIP_EXPORT
    460 SCIP* scip /**< SCIP data structure */
    461 );
    462
    463/** gets total number of iterations used so far in primal simplex
    464 *
    465 * @return total number of iterations used so far in primal simplex
    466 *
    467 * @pre This method can be called if SCIP is in one of the following stages:
    468 * - \ref SCIP_STAGE_PRESOLVED
    469 * - \ref SCIP_STAGE_SOLVING
    470 * - \ref SCIP_STAGE_SOLVED
    471 */
    472SCIP_EXPORT
    474 SCIP* scip /**< SCIP data structure */
    475 );
    476
    477/** gets total number of dual LPs solved so far
    478 *
    479 * @return the total number of dual LPs solved so far
    480 *
    481 * @pre This method can be called if SCIP is in one of the following stages:
    482 * - \ref SCIP_STAGE_PRESOLVED
    483 * - \ref SCIP_STAGE_SOLVING
    484 * - \ref SCIP_STAGE_SOLVED
    485 */
    486SCIP_EXPORT
    488 SCIP* scip /**< SCIP data structure */
    489 );
    490
    491/** gets total number of iterations used so far in dual simplex
    492 *
    493 * @return the total number of iterations used so far in dual simplex
    494 *
    495 * @pre This method can be called if SCIP is in one of the following stages:
    496 * - \ref SCIP_STAGE_PRESOLVED
    497 * - \ref SCIP_STAGE_SOLVING
    498 * - \ref SCIP_STAGE_SOLVED
    499 */
    500SCIP_EXPORT
    502 SCIP* scip /**< SCIP data structure */
    503 );
    504
    505/** gets total number of barrier LPs solved so far
    506 *
    507 * @return the total number of barrier LPs solved so far
    508 *
    509 * @pre This method can be called if SCIP is in one of the following stages:
    510 * - \ref SCIP_STAGE_PRESOLVED
    511 * - \ref SCIP_STAGE_SOLVING
    512 * - \ref SCIP_STAGE_SOLVED
    513 */
    514SCIP_EXPORT
    516 SCIP* scip /**< SCIP data structure */
    517 );
    518
    519/** gets total number of iterations used so far in barrier algorithm
    520 *
    521 * @return the total number of iterations used so far in barrier algorithm
    522 *
    523 * @pre This method can be called if SCIP is in one of the following stages:
    524 * - \ref SCIP_STAGE_PRESOLVED
    525 * - \ref SCIP_STAGE_SOLVING
    526 * - \ref SCIP_STAGE_SOLVED
    527 */
    528SCIP_EXPORT
    530 SCIP* scip /**< SCIP data structure */
    531 );
    532
    533/** gets total number of LPs solved so far that were resolved from an advanced start basis
    534 *
    535 * @return the total number of LPs solved so far that were resolved from an advanced start basis
    536 *
    537 * @pre This method can be called if SCIP is in one of the following stages:
    538 * - \ref SCIP_STAGE_PRESOLVED
    539 * - \ref SCIP_STAGE_SOLVING
    540 * - \ref SCIP_STAGE_SOLVED
    541 */
    542SCIP_EXPORT
    544 SCIP* scip /**< SCIP data structure */
    545 );
    546
    547/** gets total number of simplex iterations used so far in primal and dual simplex calls where an advanced start basis
    548 * was available
    549 *
    550 * @return the total number of simplex iterations used so far in primal and dual simplex calls where an advanced start
    551 * basis was available
    552 *
    553 * @pre This method can be called if SCIP is in one of the following stages:
    554 * - \ref SCIP_STAGE_PRESOLVED
    555 * - \ref SCIP_STAGE_SOLVING
    556 * - \ref SCIP_STAGE_SOLVED
    557 */
    558SCIP_EXPORT
    560 SCIP* scip /**< SCIP data structure */
    561 );
    562
    563/** gets total number of primal LPs solved so far that were resolved from an advanced start basis
    564 *
    565 * @return the total number of primal LPs solved so far that were resolved from an advanced start basis
    566 *
    567 * @pre This method can be called if SCIP is in one of the following stages:
    568 * - \ref SCIP_STAGE_PRESOLVED
    569 * - \ref SCIP_STAGE_SOLVING
    570 * - \ref SCIP_STAGE_SOLVED
    571 */
    572SCIP_EXPORT
    574 SCIP* scip /**< SCIP data structure */
    575 );
    576
    577/** gets total number of simplex iterations used so far in primal simplex calls where an advanced start basis
    578 * was available
    579 *
    580 * @return the total number of simplex iterations used so far in primal simplex calls where an advanced start
    581 * basis was available
    582 *
    583 * @pre This method can be called if SCIP is in one of the following stages:
    584 * - \ref SCIP_STAGE_PRESOLVED
    585 * - \ref SCIP_STAGE_SOLVING
    586 * - \ref SCIP_STAGE_SOLVED
    587 */
    588SCIP_EXPORT
    590 SCIP* scip /**< SCIP data structure */
    591 );
    592
    593/** gets total number of dual LPs solved so far that were resolved from an advanced start basis
    594 *
    595 * @return the total number of dual LPs solved so far that were resolved from an advanced start basis
    596 *
    597 * @pre This method can be called if SCIP is in one of the following stages:
    598 * - \ref SCIP_STAGE_PRESOLVED
    599 * - \ref SCIP_STAGE_SOLVING
    600 * - \ref SCIP_STAGE_SOLVED
    601 */
    602SCIP_EXPORT
    604 SCIP* scip /**< SCIP data structure */
    605 );
    606
    607/** gets total number of simplex iterations used so far in dual simplex calls where an advanced start basis
    608 * was available
    609 *
    610 * @return the total number of simplex iterations used so far in dual simplex calls where an advanced start
    611 * basis was available
    612 *
    613 * @pre This method can be called if SCIP is in one of the following stages:
    614 * - \ref SCIP_STAGE_PRESOLVED
    615 * - \ref SCIP_STAGE_SOLVING
    616 * - \ref SCIP_STAGE_SOLVED
    617 */
    618SCIP_EXPORT
    620 SCIP* scip /**< SCIP data structure */
    621 );
    622
    623/** gets total number of LPs solved so far for node relaxations
    624 *
    625 * @return the total number of LPs solved so far for node relaxations
    626 *
    627 * @pre This method can be called if SCIP is in one of the following stages:
    628 * - \ref SCIP_STAGE_PRESOLVED
    629 * - \ref SCIP_STAGE_SOLVING
    630 * - \ref SCIP_STAGE_SOLVED
    631 */
    632SCIP_EXPORT
    634 SCIP* scip /**< SCIP data structure */
    635 );
    636
    637/** gets total number of LPs solved in 0 iterations for node relaxations
    638 *
    639 * @return the total number of LPs solved with 0 iteratins for node relaxations
    640 *
    641 * @pre This method can be called if SCIP is in one of the following stages:
    642 * - \ref SCIP_STAGE_PRESOLVED
    643 * - \ref SCIP_STAGE_SOLVING
    644 * - \ref SCIP_STAGE_SOLVED
    645 */
    646SCIP_EXPORT
    648 SCIP* scip /**< SCIP data structure */
    649 );
    650
    651/** gets total number of simplex iterations used so far for node relaxations
    652 *
    653 * @return the total number of simplex iterations used so far for node relaxations
    654 *
    655 * @pre This method can be called if SCIP is in one of the following stages:
    656 * - \ref SCIP_STAGE_PRESOLVED
    657 * - \ref SCIP_STAGE_SOLVING
    658 * - \ref SCIP_STAGE_SOLVED
    659 */
    660SCIP_EXPORT
    662 SCIP* scip /**< SCIP data structure */
    663 );
    664
    665/** gets total number of LPs solved so far for initial LP in node relaxations
    666 *
    667 * @return the total number of LPs solved so far for initial LP in node relaxations
    668 *
    669 * @pre This method can be called if SCIP is in one of the following stages:
    670 * - \ref SCIP_STAGE_PRESOLVED
    671 * - \ref SCIP_STAGE_SOLVING
    672 * - \ref SCIP_STAGE_SOLVED
    673 */
    674SCIP_EXPORT
    676 SCIP* scip /**< SCIP data structure */
    677 );
    678
    679/** gets total number of simplex iterations used so far for initial LP in node relaxations
    680 *
    681 * @return the total number of simplex iterations used so far for initial LP in node relaxations
    682 *
    683 * @pre This method can be called if SCIP is in one of the following stages:
    684 * - \ref SCIP_STAGE_PRESOLVED
    685 * - \ref SCIP_STAGE_SOLVING
    686 * - \ref SCIP_STAGE_SOLVED
    687 */
    688SCIP_EXPORT
    690 SCIP* scip /**< SCIP data structure */
    691 );
    692
    693/** gets total number of LPs solved so far during diving and probing
    694 *
    695 * @return total number of LPs solved so far during diving and probing
    696 *
    697 * @pre This method can be called if SCIP is in one of the following stages:
    698 * - \ref SCIP_STAGE_PRESOLVED
    699 * - \ref SCIP_STAGE_SOLVING
    700 * - \ref SCIP_STAGE_SOLVED
    701 */
    702SCIP_EXPORT
    704 SCIP* scip /**< SCIP data structure */
    705 );
    706
    707/** gets total number of simplex iterations used so far during diving and probing
    708 *
    709 * @return the total number of simplex iterations used so far during diving and probing
    710 *
    711 * @pre This method can be called if SCIP is in one of the following stages:
    712 * - \ref SCIP_STAGE_PRESOLVED
    713 * - \ref SCIP_STAGE_SOLVING
    714 * - \ref SCIP_STAGE_SOLVED
    715 */
    716SCIP_EXPORT
    718 SCIP* scip /**< SCIP data structure */
    719 );
    720
    721/** gets total number of times, strong branching was called (each call represents solving two LPs)
    722 *
    723 * @return the total number of times, strong branching was called (each call represents solving two LPs)
    724 *
    725 * @pre This method can be called if SCIP is in one of the following stages:
    726 * - \ref SCIP_STAGE_PRESOLVED
    727 * - \ref SCIP_STAGE_SOLVING
    728 * - \ref SCIP_STAGE_SOLVED
    729 */
    730SCIP_EXPORT
    732 SCIP* scip /**< SCIP data structure */
    733 );
    734
    735/** gets total number of simplex iterations used so far in strong branching
    736 *
    737 * @return the total number of simplex iterations used so far in strong branching
    738 *
    739 * @pre This method can be called if SCIP is in one of the following stages:
    740 * - \ref SCIP_STAGE_PRESOLVED
    741 * - \ref SCIP_STAGE_SOLVING
    742 * - \ref SCIP_STAGE_SOLVED
    743 */
    744SCIP_EXPORT
    746 SCIP* scip /**< SCIP data structure */
    747 );
    748
    749/** gets total number of times, strong branching was called at the root node (each call represents solving two LPs)
    750 *
    751 * @return the total number of times, strong branching was called at the root node (each call represents solving two LPs)
    752 *
    753 * @pre This method can be called if SCIP is in one of the following stages:
    754 * - \ref SCIP_STAGE_PRESOLVED
    755 * - \ref SCIP_STAGE_SOLVING
    756 * - \ref SCIP_STAGE_SOLVED
    757 */
    758SCIP_EXPORT
    760 SCIP* scip /**< SCIP data structure */
    761 );
    762
    763/** gets total number of simplex iterations used so far in strong branching at the root node
    764 *
    765 * @return the total number of simplex iterations used so far in strong branching at the root node
    766 *
    767 * @pre This method can be called if SCIP is in one of the following stages:
    768 * - \ref SCIP_STAGE_PRESOLVED
    769 * - \ref SCIP_STAGE_SOLVING
    770 * - \ref SCIP_STAGE_SOLVED
    771 */
    772SCIP_EXPORT
    774 SCIP* scip /**< SCIP data structure */
    775 );
    776
    777/** gets number of pricing rounds performed so far at the current node
    778 *
    779 * @return the number of pricing rounds performed so far at the current node
    780 *
    781 * @pre This method can be called if SCIP is in one of the following stages:
    782 * - \ref SCIP_STAGE_SOLVING
    783 */
    784SCIP_EXPORT
    786 SCIP* scip /**< SCIP data structure */
    787 );
    788
    789/** get current number of variables in the pricing store
    790 *
    791 * @return the current number of variables in the pricing store
    792 *
    793 * @pre This method can be called if SCIP is in one of the following stages:
    794 * - \ref SCIP_STAGE_PRESOLVED
    795 * - \ref SCIP_STAGE_SOLVING
    796 * - \ref SCIP_STAGE_SOLVED
    797 */
    798SCIP_EXPORT
    800 SCIP* scip /**< SCIP data structure */
    801 );
    802
    803/** get total number of pricing variables found so far
    804 *
    805 * @return the total number of pricing variables found so far
    806 *
    807 * @pre This method can be called if SCIP is in one of the following stages:
    808 * - \ref SCIP_STAGE_PRESOLVED
    809 * - \ref SCIP_STAGE_SOLVING
    810 * - \ref SCIP_STAGE_SOLVED
    811 */
    812SCIP_EXPORT
    814 SCIP* scip /**< SCIP data structure */
    815 );
    816
    817/** get total number of pricing variables applied to the LPs
    818 *
    819 * @return the total number of pricing variables applied to the LPs
    820 *
    821 * @pre This method can be called if SCIP is in one of the following stages:
    822 * - \ref SCIP_STAGE_PRESOLVED
    823 * - \ref SCIP_STAGE_SOLVING
    824 * - \ref SCIP_STAGE_SOLVED
    825 */
    826SCIP_EXPORT
    828 SCIP* scip /**< SCIP data structure */
    829 );
    830
    831/** gets number of separation rounds performed so far at the current node
    832 *
    833 * @return the number of separation rounds performed so far at the current node
    834 *
    835 * @pre This method can be called if SCIP is in one of the following stages:
    836 * - \ref SCIP_STAGE_SOLVING
    837 */
    838SCIP_EXPORT
    840 SCIP* scip /**< SCIP data structure */
    841 );
    842
    843/** get total number of cuts added to the sepastore so far; this includes global cuts from the cut pool as often as they are separated
    844 *
    845 * @return the total number of cuts added to the sepastore so far
    846 *
    847 * @pre This method can be called if SCIP is in one of the following stages:
    848 * - \ref SCIP_STAGE_PRESOLVED
    849 * - \ref SCIP_STAGE_SOLVING
    850 * - \ref SCIP_STAGE_SOLVED
    851 */
    852SCIP_EXPORT
    854 SCIP* scip /**< SCIP data structure */
    855 );
    856
    857/** get number of cuts found so far in current separation round
    858 *
    859 * @return the number of cuts found so far in current separation round
    860 *
    861 * @pre This method can be called if SCIP is in one of the following stages:
    862 * - \ref SCIP_STAGE_PRESOLVED
    863 * - \ref SCIP_STAGE_SOLVING
    864 * - \ref SCIP_STAGE_SOLVED
    865 */
    866SCIP_EXPORT
    868 SCIP* scip /**< SCIP data structure */
    869 );
    870
    871/** get total number of cuts applied to the LPs
    872 *
    873 * @return the total number of cuts applied to the LPs
    874 *
    875 * @pre This method can be called if SCIP is in one of the following stages:
    876 * - \ref SCIP_STAGE_PRESOLVED
    877 * - \ref SCIP_STAGE_SOLVING
    878 * - \ref SCIP_STAGE_SOLVED
    879 */
    880SCIP_EXPORT
    882 SCIP* scip /**< SCIP data structure */
    883 );
    884
    885/** get total number of constraints found in conflict analysis (conflict, reconvergence constraints, and dual proofs)
    886 *
    887 * @return the total number of constraints found in conflict analysis (conflict, reconvergence constraints, and dual proofs)
    888 *
    889 * @pre This method can be called if SCIP is in one of the following stages:
    890 * - \ref SCIP_STAGE_TRANSFORMED
    891 * - \ref SCIP_STAGE_INITPRESOLVE
    892 * - \ref SCIP_STAGE_PRESOLVING
    893 * - \ref SCIP_STAGE_EXITPRESOLVE
    894 * - \ref SCIP_STAGE_PRESOLVED
    895 * - \ref SCIP_STAGE_INITSOLVE
    896 * - \ref SCIP_STAGE_SOLVING
    897 * - \ref SCIP_STAGE_SOLVED
    898 * - \ref SCIP_STAGE_EXITSOLVE
    899 */
    900SCIP_EXPORT
    902 SCIP* scip /**< SCIP data structure */
    903 );
    904
    905/** get number of conflict constraints found so far at the current node
    906 *
    907 * @return the number of conflict constraints found so far at the current node
    908 *
    909 * @pre This method can be called if SCIP is in one of the following stages:
    910 * - \ref SCIP_STAGE_TRANSFORMED
    911 * - \ref SCIP_STAGE_INITPRESOLVE
    912 * - \ref SCIP_STAGE_PRESOLVING
    913 * - \ref SCIP_STAGE_EXITPRESOLVE
    914 * - \ref SCIP_STAGE_PRESOLVED
    915 * - \ref SCIP_STAGE_INITSOLVE
    916 * - \ref SCIP_STAGE_SOLVING
    917 * - \ref SCIP_STAGE_SOLVED
    918 * - \ref SCIP_STAGE_EXITSOLVE
    919 */
    920SCIP_EXPORT
    922 SCIP* scip /**< SCIP data structure */
    923 );
    924
    925/** get total number of conflict constraints added to the problem
    926 *
    927 * @return the total number of conflict constraints added to the problem
    928 *
    929 * @pre This method can be called if SCIP is in one of the following stages:
    930 * - \ref SCIP_STAGE_TRANSFORMED
    931 * - \ref SCIP_STAGE_INITPRESOLVE
    932 * - \ref SCIP_STAGE_PRESOLVING
    933 * - \ref SCIP_STAGE_EXITPRESOLVE
    934 * - \ref SCIP_STAGE_PRESOLVED
    935 * - \ref SCIP_STAGE_INITSOLVE
    936 * - \ref SCIP_STAGE_SOLVING
    937 * - \ref SCIP_STAGE_SOLVED
    938 * - \ref SCIP_STAGE_EXITSOLVE
    939 */
    940SCIP_EXPORT
    942 SCIP* scip /**< SCIP data structure */
    943 );
    944
    945
    946/** get total number of resolution conflict constraints added to the problem
    947 *
    948 * @return the total number of resolution conflict constraints added to the problem
    949 *
    950 * @pre This method can be called if SCIP is in one of the following stages:
    951 * - \ref SCIP_STAGE_TRANSFORMED
    952 * - \ref SCIP_STAGE_INITPRESOLVE
    953 * - \ref SCIP_STAGE_PRESOLVING
    954 * - \ref SCIP_STAGE_EXITPRESOLVE
    955 * - \ref SCIP_STAGE_PRESOLVED
    956 * - \ref SCIP_STAGE_INITSOLVE
    957 * - \ref SCIP_STAGE_SOLVING
    958 * - \ref SCIP_STAGE_SOLVED
    959 * - \ref SCIP_STAGE_EXITSOLVE
    960 */
    961SCIP_EXPORT
    963 SCIP* scip /**< SCIP data structure */
    964 );
    965
    966/** get total number of dual proof constraints added to the problem
    967 *
    968 * @return the total number of dual proof constraints added to the problem
    969 *
    970 * @pre This method can be called if SCIP is in one of the following stages:
    971 * - \ref SCIP_STAGE_TRANSFORMED
    972 * - \ref SCIP_STAGE_INITPRESOLVE
    973 * - \ref SCIP_STAGE_PRESOLVING
    974 * - \ref SCIP_STAGE_EXITPRESOLVE
    975 * - \ref SCIP_STAGE_PRESOLVED
    976 * - \ref SCIP_STAGE_INITSOLVE
    977 * - \ref SCIP_STAGE_SOLVING
    978 * - \ref SCIP_STAGE_SOLVED
    979 * - \ref SCIP_STAGE_EXITSOLVE
    980 */
    981SCIP_EXPORT
    983 SCIP* scip /**< SCIP data structure */
    984 );
    985
    986/** gets maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
    987 *
    988 * @return the maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
    989 *
    990 * @pre This method can be called if SCIP is in one of the following stages:
    991 * - \ref SCIP_STAGE_TRANSFORMED
    992 * - \ref SCIP_STAGE_INITPRESOLVE
    993 * - \ref SCIP_STAGE_PRESOLVING
    994 * - \ref SCIP_STAGE_EXITPRESOLVE
    995 * - \ref SCIP_STAGE_PRESOLVED
    996 * - \ref SCIP_STAGE_INITSOLVE
    997 * - \ref SCIP_STAGE_SOLVING
    998 * - \ref SCIP_STAGE_SOLVED
    999 * - \ref SCIP_STAGE_EXITSOLVE
    1000 */
    1001SCIP_EXPORT
    1002int SCIPgetMaxDepth(
    1003 SCIP* scip /**< SCIP data structure */
    1004 );
    1005
    1006/** gets maximal depth of all processed nodes over all branch and bound runs
    1007 *
    1008 * @return the maximal depth of all processed nodes over all branch and bound runs
    1009 *
    1010 * @pre This method can be called if SCIP is in one of the following stages:
    1011 * - \ref SCIP_STAGE_TRANSFORMED
    1012 * - \ref SCIP_STAGE_INITPRESOLVE
    1013 * - \ref SCIP_STAGE_PRESOLVING
    1014 * - \ref SCIP_STAGE_EXITPRESOLVE
    1015 * - \ref SCIP_STAGE_PRESOLVED
    1016 * - \ref SCIP_STAGE_INITSOLVE
    1017 * - \ref SCIP_STAGE_SOLVING
    1018 * - \ref SCIP_STAGE_SOLVED
    1019 * - \ref SCIP_STAGE_EXITSOLVE
    1020 */
    1021SCIP_EXPORT
    1023 SCIP* scip /**< SCIP data structure */
    1024 );
    1025
    1026/** gets total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
    1027 *
    1028 * @return the total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
    1029 *
    1030 * @pre This method can be called if SCIP is in one of the following stages:
    1031 * - \ref SCIP_STAGE_TRANSFORMED
    1032 * - \ref SCIP_STAGE_INITPRESOLVE
    1033 * - \ref SCIP_STAGE_PRESOLVING
    1034 * - \ref SCIP_STAGE_EXITPRESOLVE
    1035 * - \ref SCIP_STAGE_PRESOLVED
    1036 * - \ref SCIP_STAGE_INITSOLVE
    1037 * - \ref SCIP_STAGE_SOLVING
    1038 * - \ref SCIP_STAGE_SOLVED
    1039 * - \ref SCIP_STAGE_EXITSOLVE
    1040 */
    1041SCIP_EXPORT
    1043 SCIP* scip /**< SCIP data structure */
    1044 );
    1045
    1046/** gets total number of active constraints at the current node
    1047 *
    1048 * @return the total number of active constraints at the current node
    1049 *
    1050 * @pre This method can be called if SCIP is in one of the following stages:
    1051 * - \ref SCIP_STAGE_INITPRESOLVE
    1052 * - \ref SCIP_STAGE_PRESOLVING
    1053 * - \ref SCIP_STAGE_EXITPRESOLVE
    1054 * - \ref SCIP_STAGE_PRESOLVED
    1055 * - \ref SCIP_STAGE_SOLVING
    1056 */
    1057SCIP_EXPORT
    1059 SCIP* scip /**< SCIP data structure */
    1060 );
    1061
    1062/** gets total number of enabled constraints at the current node
    1063 *
    1064 * @return the total number of enabled constraints at the current node
    1065 *
    1066 * @pre This method can be called if SCIP is in one of the following stages:
    1067 * - \ref SCIP_STAGE_PRESOLVED
    1068 * - \ref SCIP_STAGE_SOLVING
    1069 */
    1070SCIP_EXPORT
    1072 SCIP* scip /**< SCIP data structure */
    1073 );
    1074
    1075/** gets average dual bound of all unprocessed nodes for original problem
    1076 *
    1077 * @return the average dual bound of all unprocessed nodes for original problem
    1078 *
    1079 * @pre This method can be called if SCIP is in one of the following stages:
    1080 * - \ref SCIP_STAGE_PRESOLVED
    1081 * - \ref SCIP_STAGE_SOLVING
    1082 * - \ref SCIP_STAGE_SOLVED
    1083 */
    1084SCIP_EXPORT
    1086 SCIP* scip /**< SCIP data structure */
    1087 );
    1088
    1089/** gets average lower (dual) bound of all unprocessed nodes in transformed problem
    1090 *
    1091 * @return the average lower (dual) bound of all unprocessed nodes in transformed problem
    1092 *
    1093 * @pre This method can be called if SCIP is in one of the following stages:
    1094 * - \ref SCIP_STAGE_PRESOLVED
    1095 * - \ref SCIP_STAGE_SOLVING
    1096 * - \ref SCIP_STAGE_SOLVED
    1097 */
    1098SCIP_EXPORT
    1100 SCIP* scip /**< SCIP data structure */
    1101 );
    1102
    1103/** gets global dual bound
    1104 *
    1105 * @return the global dual bound
    1106 *
    1107 * @pre This method can be called if SCIP is in one of the following stages:
    1108 * - \ref SCIP_STAGE_TRANSFORMED
    1109 * - \ref SCIP_STAGE_INITPRESOLVE
    1110 * - \ref SCIP_STAGE_PRESOLVING
    1111 * - \ref SCIP_STAGE_EXITPRESOLVE
    1112 * - \ref SCIP_STAGE_PRESOLVED
    1113 * - \ref SCIP_STAGE_INITSOLVE
    1114 * - \ref SCIP_STAGE_SOLVING
    1115 * - \ref SCIP_STAGE_SOLVED
    1116 * - \ref SCIP_STAGE_EXITSOLVE
    1117 */
    1118SCIP_EXPORT
    1120 SCIP* scip /**< SCIP data structure */
    1121 );
    1122
    1123/** gets global exact dual bound
    1124 *
    1125 * @pre This method can be called if SCIP is in one of the following stages:
    1126 * - \ref SCIP_STAGE_TRANSFORMED
    1127 * - \ref SCIP_STAGE_INITPRESOLVE
    1128 * - \ref SCIP_STAGE_PRESOLVING
    1129 * - \ref SCIP_STAGE_EXITPRESOLVE
    1130 * - \ref SCIP_STAGE_PRESOLVED
    1131 * - \ref SCIP_STAGE_INITSOLVE
    1132 * - \ref SCIP_STAGE_SOLVING
    1133 * - \ref SCIP_STAGE_SOLVED
    1134 * - \ref SCIP_STAGE_EXITSOLVE
    1135 */
    1136SCIP_EXPORT
    1138 SCIP* scip, /**< SCIP data structure */
    1139 SCIP_RATIONAL* result /**< the resulting obj value */
    1140 );
    1141
    1142/** gets global lower (dual) bound in transformed problem
    1143 *
    1144 * @return the global lower (dual) bound in transformed problem
    1145 *
    1146 * @pre This method can be called if SCIP is in one of the following stages:
    1147 * - \ref SCIP_STAGE_TRANSFORMED
    1148 * - \ref SCIP_STAGE_INITPRESOLVE
    1149 * - \ref SCIP_STAGE_PRESOLVING
    1150 * - \ref SCIP_STAGE_EXITPRESOLVE
    1151 * - \ref SCIP_STAGE_PRESOLVED
    1152 * - \ref SCIP_STAGE_INITSOLVE
    1153 * - \ref SCIP_STAGE_SOLVING
    1154 * - \ref SCIP_STAGE_SOLVED
    1155 */
    1156SCIP_EXPORT
    1158 SCIP* scip /**< SCIP data structure */
    1159 );
    1160
    1161/** gets global exact lower (dual) bound in transformed problem
    1162 *
    1163 * @pre This method can be called if SCIP is in one of the following stages:
    1164 * - \ref SCIP_STAGE_TRANSFORMED
    1165 * - \ref SCIP_STAGE_INITPRESOLVE
    1166 * - \ref SCIP_STAGE_PRESOLVING
    1167 * - \ref SCIP_STAGE_EXITPRESOLVE
    1168 * - \ref SCIP_STAGE_PRESOLVED
    1169 * - \ref SCIP_STAGE_INITSOLVE
    1170 * - \ref SCIP_STAGE_SOLVING
    1171 * - \ref SCIP_STAGE_SOLVED
    1172 */
    1173SCIP_EXPORT
    1175 SCIP* scip, /**< SCIP data structure */
    1176 SCIP_RATIONAL* result /**< the resulting bound */
    1177 );
    1178
    1179/** gets dual bound of the root node for the original problem
    1180 *
    1181 * @return the dual bound of the root node for the original problem
    1182 *
    1183 * @pre This method can be called if SCIP is in one of the following stages:
    1184 * - \ref SCIP_STAGE_PRESOLVING
    1185 * - \ref SCIP_STAGE_EXITPRESOLVE
    1186 * - \ref SCIP_STAGE_PRESOLVED
    1187 * - \ref SCIP_STAGE_INITSOLVE
    1188 * - \ref SCIP_STAGE_SOLVING
    1189 * - \ref SCIP_STAGE_SOLVED
    1190 */
    1191SCIP_EXPORT
    1193 SCIP* scip /**< SCIP data structure */
    1194 );
    1195
    1196/** gets lower (dual) bound in transformed problem of the root node
    1197 *
    1198 * @return the lower (dual) bound in transformed problem of the root node
    1199 *
    1200 * @pre This method can be called if SCIP is in one of the following stages:
    1201 * - \ref SCIP_STAGE_PRESOLVING
    1202 * - \ref SCIP_STAGE_EXITPRESOLVE
    1203 * - \ref SCIP_STAGE_PRESOLVED
    1204 * - \ref SCIP_STAGE_INITSOLVE
    1205 * - \ref SCIP_STAGE_SOLVING
    1206 * - \ref SCIP_STAGE_SOLVED
    1207 */
    1208SCIP_EXPORT
    1210 SCIP* scip /**< SCIP data structure */
    1211 );
    1212
    1213/** gets dual bound for the original problem obtained by the first LP solve at the root node
    1214 *
    1215 * @return the dual bound for the original problem of the first LP solve at the root node
    1216 *
    1217 * @pre This method can be called if SCIP is in one of the following stages:
    1218 * - \ref SCIP_STAGE_PRESOLVING
    1219 * - \ref SCIP_STAGE_EXITPRESOLVE
    1220 * - \ref SCIP_STAGE_PRESOLVED
    1221 * - \ref SCIP_STAGE_INITSOLVE
    1222 * - \ref SCIP_STAGE_SOLVING
    1223 * - \ref SCIP_STAGE_SOLVED
    1224 */
    1225SCIP_EXPORT
    1227 SCIP* scip /**< SCIP data structure */
    1228 );
    1229
    1230/** gets lower (dual) bound in transformed problem obtained by the first LP solve at the root node
    1231 *
    1232 * @return the lower (dual) bound in transformed problem obtained by first LP solve at the root node
    1233 *
    1234 * @pre This method can be called if SCIP is in one of the following stages:
    1235 * - \ref SCIP_STAGE_PRESOLVING
    1236 * - \ref SCIP_STAGE_EXITPRESOLVE
    1237 * - \ref SCIP_STAGE_PRESOLVED
    1238 * - \ref SCIP_STAGE_INITSOLVE
    1239 * - \ref SCIP_STAGE_SOLVING
    1240 * - \ref SCIP_STAGE_SOLVED
    1241 */
    1242SCIP_EXPORT
    1244 SCIP* scip /**< SCIP data structure */
    1245 );
    1246
    1247
    1248/** gets the primal bound of the very first solution
    1249 *
    1250 * @return the primal bound of the very first solution
    1251 */
    1252SCIP_EXPORT
    1254 SCIP* scip /**< SCIP data structure */
    1255 );
    1256
    1257/** gets global primal bound (objective value of best solution or user objective limit) for the original problem
    1258 *
    1259 * @return the global primal bound (objective value of best solution or user objective limit) for the original problem
    1260 *
    1261 * @pre This method can be called if SCIP is in one of the following stages:
    1262 * - \ref SCIP_STAGE_TRANSFORMED
    1263 * - \ref SCIP_STAGE_INITPRESOLVE
    1264 * - \ref SCIP_STAGE_PRESOLVING
    1265 * - \ref SCIP_STAGE_EXITPRESOLVE
    1266 * - \ref SCIP_STAGE_PRESOLVED
    1267 * - \ref SCIP_STAGE_INITSOLVE
    1268 * - \ref SCIP_STAGE_SOLVING
    1269 * - \ref SCIP_STAGE_SOLVED
    1270 * - \ref SCIP_STAGE_EXITSOLVE
    1271 */
    1272SCIP_EXPORT
    1274 SCIP* scip /**< SCIP data structure */
    1275 );
    1276
    1277/** gets global primal bound (objective value of best solution or user objective limit) for the original problem
    1278 *
    1279 * @pre This method can be called if SCIP is in one of the following stages:
    1280 * - \ref SCIP_STAGE_TRANSFORMED
    1281 * - \ref SCIP_STAGE_INITPRESOLVE
    1282 * - \ref SCIP_STAGE_PRESOLVING
    1283 * - \ref SCIP_STAGE_EXITPRESOLVE
    1284 * - \ref SCIP_STAGE_PRESOLVED
    1285 * - \ref SCIP_STAGE_INITSOLVE
    1286 * - \ref SCIP_STAGE_SOLVING
    1287 * - \ref SCIP_STAGE_SOLVED
    1288 * - \ref SCIP_STAGE_EXITSOLVE
    1289 */
    1290SCIP_EXPORT
    1292 SCIP* scip, /**< SCIP data structure */
    1293 SCIP_RATIONAL* result /**< the resulting obj value */
    1294 );
    1295
    1296/** gets global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
    1297 *
    1298 * @return the global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
    1299 *
    1300 * @pre This method can be called if SCIP is in one of the following stages:
    1301 * - \ref SCIP_STAGE_TRANSFORMED
    1302 * - \ref SCIP_STAGE_INITPRESOLVE
    1303 * - \ref SCIP_STAGE_PRESOLVING
    1304 * - \ref SCIP_STAGE_EXITPRESOLVE
    1305 * - \ref SCIP_STAGE_PRESOLVED
    1306 * - \ref SCIP_STAGE_INITSOLVE
    1307 * - \ref SCIP_STAGE_SOLVING
    1308 * - \ref SCIP_STAGE_SOLVED
    1309 * - \ref SCIP_STAGE_EXITSOLVE
    1310 */
    1311SCIP_EXPORT
    1313 SCIP* scip /**< SCIP data structure */
    1314 );
    1315
    1316/** gets global exact upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
    1317 *
    1318 * @pre This method can be called if SCIP is in one of the following stages:
    1319 * - \ref SCIP_STAGE_TRANSFORMED
    1320 * - \ref SCIP_STAGE_INITPRESOLVE
    1321 * - \ref SCIP_STAGE_PRESOLVING
    1322 * - \ref SCIP_STAGE_EXITPRESOLVE
    1323 * - \ref SCIP_STAGE_PRESOLVED
    1324 * - \ref SCIP_STAGE_INITSOLVE
    1325 * - \ref SCIP_STAGE_SOLVING
    1326 * - \ref SCIP_STAGE_SOLVED
    1327 * - \ref SCIP_STAGE_EXITSOLVE
    1328 */
    1329SCIP_EXPORT
    1331 SCIP* scip, /**< SCIP data structure */
    1332 SCIP_RATIONAL* result /**< the resulting upper bound value */
    1333 );
    1334
    1335/** gets global cutoff bound in transformed problem: a sub problem with lower bound larger than the cutoff
    1336 * cannot contain a better feasible solution; usually, this bound is equal to the upper bound, but if the
    1337 * objective value is always integral, the cutoff bound is (nearly) one less than the upper bound;
    1338 * additionally, due to objective function domain propagation, the cutoff bound can be further reduced
    1339 *
    1340 * @return global cutoff bound in transformed problem
    1341 *
    1342 * @pre This method can be called if SCIP is in one of the following stages:
    1343 * - \ref SCIP_STAGE_TRANSFORMED
    1344 * - \ref SCIP_STAGE_INITPRESOLVE
    1345 * - \ref SCIP_STAGE_PRESOLVING
    1346 * - \ref SCIP_STAGE_EXITPRESOLVE
    1347 * - \ref SCIP_STAGE_PRESOLVED
    1348 * - \ref SCIP_STAGE_INITSOLVE
    1349 * - \ref SCIP_STAGE_SOLVING
    1350 * - \ref SCIP_STAGE_SOLVED
    1351 * - \ref SCIP_STAGE_EXITSOLVE
    1352 */
    1353SCIP_EXPORT
    1355 SCIP* scip /**< SCIP data structure */
    1356 );
    1357
    1358/** gets global cutoff bound of exact transformed problem: a sub problem with lower bound larger than the cutoff
    1359 * cannot contain a better feasible solution; usually, this bound is equal to the upper bound, but if the
    1360 * objective value is always integral, the cutoff bound is (nearly) one less than the upper bound;
    1361 * additionally, due to objective function domain propagation, the cutoff bound can be further reduced
    1362 *
    1363 * @return global cutoff bound in transformed problem
    1364 *
    1365 * @pre This method can be called if SCIP is in one of the following stages:
    1366 * - \ref SCIP_STAGE_TRANSFORMED
    1367 * - \ref SCIP_STAGE_INITPRESOLVE
    1368 * - \ref SCIP_STAGE_PRESOLVING
    1369 * - \ref SCIP_STAGE_EXITPRESOLVE
    1370 * - \ref SCIP_STAGE_PRESOLVED
    1371 * - \ref SCIP_STAGE_INITSOLVE
    1372 * - \ref SCIP_STAGE_SOLVING
    1373 * - \ref SCIP_STAGE_SOLVED
    1374 * - \ref SCIP_STAGE_EXITSOLVE
    1375 */
    1376SCIP_EXPORT
    1378 SCIP* scip /**< SCIP data structure */
    1379 );
    1380
    1381/** updates the cutoff bound
    1382 *
    1383 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
    1384 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
    1385 *
    1386 * @note using this method in the solving stage can lead to an erroneous SCIP solving status; in particular,
    1387 * if a solution not respecting the cutoff bound was found before installing a cutoff bound which
    1388 * renders the remaining problem infeasible, this solution may be reported as optimal
    1389 *
    1390 * @pre This method can be called if SCIP is in one of the following stages:
    1391 * - \ref SCIP_STAGE_TRANSFORMED
    1392 * - \ref SCIP_STAGE_PRESOLVING
    1393 * - \ref SCIP_STAGE_PRESOLVED
    1394 * - \ref SCIP_STAGE_INITSOLVE
    1395 * - \ref SCIP_STAGE_SOLVING
    1396 *
    1397 * @note the given cutoff bound has to better or equal to known one (SCIPgetCutoffbound())
    1398 * @note a given cutoff bound is also used for updating the objective limit, if possible
    1399 */
    1400SCIP_EXPORT
    1402 SCIP* scip, /**< SCIP data structure */
    1403 SCIP_Real cutoffbound /**< new cutoff bound */
    1404 );
    1405
    1406/** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
    1407 * was set from the user as objective limit
    1408 *
    1409 * @return TRUE if the current primal bound is justified with a feasible primal solution, otherwise FALSE
    1410 *
    1411 * @pre This method can be called if SCIP is in one of the following stages:
    1412 * - \ref SCIP_STAGE_TRANSFORMED
    1413 * - \ref SCIP_STAGE_INITPRESOLVE
    1414 * - \ref SCIP_STAGE_PRESOLVING
    1415 * - \ref SCIP_STAGE_EXITPRESOLVE
    1416 * - \ref SCIP_STAGE_PRESOLVED
    1417 * - \ref SCIP_STAGE_INITSOLVE
    1418 * - \ref SCIP_STAGE_SOLVING
    1419 * - \ref SCIP_STAGE_SOLVED
    1420 * - \ref SCIP_STAGE_EXITSOLVE
    1421 */
    1422SCIP_EXPORT
    1424 SCIP* scip /**< SCIP data structure */
    1425 );
    1426
    1427/** gets current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
    1428 * or infinity, if they have opposite sign
    1429 *
    1430 * @return the current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
    1431 * or infinity, if they have opposite sign
    1432 *
    1433 * @pre This method can be called if SCIP is in one of the following stages:
    1434 * - \ref SCIP_STAGE_PRESOLVING
    1435 * - \ref SCIP_STAGE_EXITPRESOLVE
    1436 * - \ref SCIP_STAGE_PRESOLVED
    1437 * - \ref SCIP_STAGE_INITSOLVE
    1438 * - \ref SCIP_STAGE_SOLVING
    1439 * - \ref SCIP_STAGE_SOLVED
    1440 */
    1441SCIP_EXPORT
    1443 SCIP* scip /**< SCIP data structure */
    1444 );
    1445
    1446/** gets current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
    1447 * have same sign, or infinity, if they have opposite sign
    1448 *
    1449 * @return current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
    1450 * have same sign, or infinity, if they have opposite sign
    1451 *
    1452 * @pre This method can be called if SCIP is in one of the following stages:
    1453 * - \ref SCIP_STAGE_PRESOLVED
    1454 * - \ref SCIP_STAGE_SOLVING
    1455 * - \ref SCIP_STAGE_SOLVED
    1456 */
    1457SCIP_EXPORT
    1459 SCIP* scip /**< SCIP data structure */
    1460 );
    1461
    1462/** gets number of feasible primal solutions found so far
    1463 *
    1464 * @return the number of feasible primal solutions found so far
    1465 *
    1466 * @pre This method can be called if SCIP is in one of the following stages:
    1467 * - \ref SCIP_STAGE_TRANSFORMED
    1468 * - \ref SCIP_STAGE_INITPRESOLVE
    1469 * - \ref SCIP_STAGE_PRESOLVING
    1470 * - \ref SCIP_STAGE_EXITPRESOLVE
    1471 * - \ref SCIP_STAGE_PRESOLVED
    1472 * - \ref SCIP_STAGE_INITSOLVE
    1473 * - \ref SCIP_STAGE_SOLVING
    1474 * - \ref SCIP_STAGE_SOLVED
    1475 * - \ref SCIP_STAGE_EXITSOLVE
    1476 */
    1477SCIP_EXPORT
    1479 SCIP* scip /**< SCIP data structure */
    1480 );
    1481
    1482/** gets number of feasible primal solutions respecting the objective limit found so far
    1483 *
    1484 * @return the number of feasible primal solutions respecting the objective limit found so far
    1485 *
    1486 * @pre This method can be called if SCIP is in one of the following stages:
    1487 * - \ref SCIP_STAGE_INIT
    1488 * - \ref SCIP_STAGE_PROBLEM
    1489 * - \ref SCIP_STAGE_TRANSFORMING
    1490 * - \ref SCIP_STAGE_TRANSFORMED
    1491 * - \ref SCIP_STAGE_INITPRESOLVE
    1492 * - \ref SCIP_STAGE_PRESOLVING
    1493 * - \ref SCIP_STAGE_EXITPRESOLVE
    1494 * - \ref SCIP_STAGE_PRESOLVED
    1495 * - \ref SCIP_STAGE_INITSOLVE
    1496 * - \ref SCIP_STAGE_SOLVING
    1497 * - \ref SCIP_STAGE_SOLVED
    1498 * - \ref SCIP_STAGE_EXITSOLVE
    1499 */
    1500SCIP_EXPORT
    1502 SCIP* scip /**< SCIP data structure */
    1503 );
    1504
    1505/** gets number of feasible primal solutions found so far, that improved the primal bound at the time they were found
    1506 *
    1507 * @return the number of feasible primal solutions found so far, that improved the primal bound at the time they were found
    1508 *
    1509 * @pre This method can be called if SCIP is in one of the following stages:
    1510 * - \ref SCIP_STAGE_TRANSFORMED
    1511 * - \ref SCIP_STAGE_INITPRESOLVE
    1512 * - \ref SCIP_STAGE_PRESOLVING
    1513 * - \ref SCIP_STAGE_EXITPRESOLVE
    1514 * - \ref SCIP_STAGE_PRESOLVED
    1515 * - \ref SCIP_STAGE_INITSOLVE
    1516 * - \ref SCIP_STAGE_SOLVING
    1517 * - \ref SCIP_STAGE_SOLVED
    1518 * - \ref SCIP_STAGE_EXITSOLVE
    1519 */
    1520SCIP_EXPORT
    1522 SCIP* scip /**< SCIP data structure */
    1523 );
    1524
    1525/** gets the average pseudo cost value for the given direction over all variables
    1526 *
    1527 * @return the average pseudo cost value for the given direction over all variables
    1528 *
    1529 * @pre This method can be called if SCIP is in one of the following stages:
    1530 * - \ref SCIP_STAGE_SOLVING
    1531 * - \ref SCIP_STAGE_SOLVED
    1532 */
    1533SCIP_EXPORT
    1535 SCIP* scip, /**< SCIP data structure */
    1536 SCIP_Real solvaldelta /**< difference of variable's new LP value - old LP value */
    1537 );
    1538
    1539/** gets the average pseudo cost value for the given direction over all variables,
    1540 * only using the pseudo cost information of the current run
    1541 *
    1542 * @return the average pseudo cost value for the given direction over all variables,
    1543 * only using the pseudo cost information of the current run
    1544 *
    1545 * @pre This method can be called if SCIP is in one of the following stages:
    1546 * - \ref SCIP_STAGE_SOLVING
    1547 * - \ref SCIP_STAGE_SOLVED
    1548 */
    1549SCIP_EXPORT
    1551 SCIP* scip, /**< SCIP data structure */
    1552 SCIP_Real solvaldelta /**< difference of variable's new LP value - old LP value */
    1553 );
    1554
    1555/** gets the average number of pseudo cost updates for the given direction over all variables
    1556 *
    1557 * @return the average number of pseudo cost updates for the given direction over all variables
    1558 *
    1559 * @pre This method can be called if SCIP is in one of the following stages:
    1560 * - \ref SCIP_STAGE_SOLVING
    1561 * - \ref SCIP_STAGE_SOLVED
    1562 */
    1563SCIP_EXPORT
    1565 SCIP* scip, /**< SCIP data structure */
    1566 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
    1567 );
    1568
    1569/** gets the average number of pseudo cost updates for the given direction over all variables,
    1570 * only using the pseudo cost information of the current run
    1571 *
    1572 * @return the average number of pseudo cost updates for the given direction over all variables,
    1573 * only using the pseudo cost information of the current run
    1574 *
    1575 * @pre This method can be called if SCIP is in one of the following stages:
    1576 * - \ref SCIP_STAGE_SOLVING
    1577 * - \ref SCIP_STAGE_SOLVED
    1578 */
    1579SCIP_EXPORT
    1581 SCIP* scip, /**< SCIP data structure */
    1582 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
    1583 );
    1584
    1585/** gets the number of pseudo cost updates for the given direction over all variables
    1586 *
    1587 * @return the number of pseudo cost updates for the given direction over all variables
    1588 *
    1589 * @pre This method can be called if SCIP is in one of the following stages:
    1590 * - \ref SCIP_STAGE_SOLVING
    1591 * - \ref SCIP_STAGE_SOLVED
    1592 */
    1593SCIP_EXPORT
    1595 SCIP* scip, /**< SCIP data structure */
    1596 SCIP_BRANCHDIR dir, /**< branching direction (downwards, or upwards) */
    1597 SCIP_Bool onlycurrentrun /**< use only history of current run? */
    1598 );
    1599
    1600/** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5
    1601 *
    1602 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5
    1603 *
    1604 * @pre This method can be called if SCIP is in one of the following stages:
    1605 * - \ref SCIP_STAGE_SOLVING
    1606 * - \ref SCIP_STAGE_SOLVED
    1607 */
    1608SCIP_EXPORT
    1610 SCIP* scip /**< SCIP data structure */
    1611 );
    1612
    1613/** gets the average discounted pseudo cost score value over all variables, assuming a fractionality of 0.5
    1614 *
    1615 * This combines both pscost and ancpscost fields.
    1616 *
    1617 * @return the average discounted pseudo cost score value over all variables, assuming a fractionality of 0.5,
    1618 * combining both pscost and ancpscost fields
    1619 *
    1620 * @pre This method can be called if SCIP is in one of the following stages:
    1621 * - \ref SCIP_STAGE_SOLVING
    1622 * - \ref SCIP_STAGE_SOLVED
    1623 */
    1624SCIP_EXPORT
    1626 SCIP* scip, /**< SCIP data structure */
    1627 SCIP_Real discountfac /**< discount factor for discounted pseudocost */
    1628 );
    1629
    1630/** returns the variance of pseudo costs for all variables in the requested direction
    1631 *
    1632 * @return the variance of pseudo costs for all variables in the requested direction
    1633 *
    1634 * @pre This method can be called if SCIP is in one of the following stages:
    1635 * - \ref SCIP_STAGE_SOLVING
    1636 * - \ref SCIP_STAGE_SOLVED
    1637 */
    1638SCIP_EXPORT
    1640 SCIP* scip, /**< SCIP data structure */
    1641 SCIP_BRANCHDIR branchdir, /**< the branching direction, up or down */
    1642 SCIP_Bool onlycurrentrun /**< use only history of current run? */
    1643 );
    1644
    1645/** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
    1646 * only using the pseudo cost information of the current run
    1647 *
    1648 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
    1649 * only using the pseudo cost information of the current run
    1650 *
    1651 * @pre This method can be called if SCIP is in one of the following stages:
    1652 * - \ref SCIP_STAGE_SOLVING
    1653 * - \ref SCIP_STAGE_SOLVED
    1654 */
    1655SCIP_EXPORT
    1657 SCIP* scip /**< SCIP data structure */
    1658 );
    1659
    1660/** gets the average conflict score value over all variables
    1661 *
    1662 * @return the average conflict score value over all variables
    1663 *
    1664 * @pre This method can be called if SCIP is in one of the following stages:
    1665 * - \ref SCIP_STAGE_SOLVING
    1666 * - \ref SCIP_STAGE_SOLVED
    1667 */
    1668SCIP_EXPORT
    1670 SCIP* scip /**< SCIP data structure */
    1671 );
    1672
    1673/** gets the average conflict score value over all variables, only using the conflict score information of the current run
    1674 *
    1675 * @return the average conflict score value over all variables, only using the conflict score information of the current run
    1676 *
    1677 * @pre This method can be called if SCIP is in one of the following stages:
    1678 * - \ref SCIP_STAGE_SOLVING
    1679 * - \ref SCIP_STAGE_SOLVED
    1680 */
    1681SCIP_EXPORT
    1683 SCIP* scip /**< SCIP data structure */
    1684 );
    1685
    1686/** gets the average inference score value over all variables
    1687 *
    1688 * @return the average inference score value over all variables
    1689 *
    1690 * @pre This method can be called if SCIP is in one of the following stages:
    1691 * - \ref SCIP_STAGE_SOLVING
    1692 * - \ref SCIP_STAGE_SOLVED
    1693 */
    1694SCIP_EXPORT
    1696 SCIP* scip /**< SCIP data structure */
    1697 );
    1698
    1699/** gets the average conflictlength score value over all variables, only using the conflictlength information of the
    1700 * current run
    1701 *
    1702 * @return the average conflictlength score value over all variables, only using the conflictlength information of the
    1703 * current run
    1704 *
    1705 * @pre This method can be called if SCIP is in one of the following stages:
    1706 * - \ref SCIP_STAGE_SOLVING
    1707 * - \ref SCIP_STAGE_SOLVED
    1708 */
    1709SCIP_EXPORT
    1711 SCIP* scip /**< SCIP data structure */
    1712 );
    1713
    1714/** returns the average number of inferences found after branching in given direction over all variables
    1715 *
    1716 * @return the average number of inferences found after branching in given direction over all variables
    1717 *
    1718 * @pre This method can be called if SCIP is in one of the following stages:
    1719 * - \ref SCIP_STAGE_SOLVING
    1720 * - \ref SCIP_STAGE_SOLVED
    1721 */
    1722SCIP_EXPORT
    1724 SCIP* scip, /**< SCIP data structure */
    1725 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
    1726 );
    1727
    1728/** returns the average number of inferences found after branching in given direction over all variables,
    1729 * only using the inference information of the current run
    1730 *
    1731 * @return the average number of inferences found after branching in given direction over all variables,
    1732 * only using the inference information of the current run
    1733 *
    1734 * @pre This method can be called if SCIP is in one of the following stages:
    1735 * - \ref SCIP_STAGE_SOLVING
    1736 * - \ref SCIP_STAGE_SOLVED
    1737 */
    1738SCIP_EXPORT
    1740 SCIP* scip, /**< SCIP data structure */
    1741 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
    1742 );
    1743
    1744/** gets the average inference score value over all variables
    1745 *
    1746 * @return the average inference score value over all variables
    1747 *
    1748 * @pre This method can be called if SCIP is in one of the following stages:
    1749 * - \ref SCIP_STAGE_SOLVING
    1750 * - \ref SCIP_STAGE_SOLVED
    1751 */
    1752SCIP_EXPORT
    1754 SCIP* scip /**< SCIP data structure */
    1755 );
    1756
    1757/** gets the average inference score value over all variables, only using the inference information of the
    1758 * current run
    1759 *
    1760 * @return the average inference score value over all variables, only using the inference information of the
    1761 * current run
    1762 *
    1763 * @pre This method can be called if SCIP is in one of the following stages:
    1764 * - \ref SCIP_STAGE_SOLVING
    1765 * - \ref SCIP_STAGE_SOLVED
    1766 */
    1767SCIP_EXPORT
    1769 SCIP* scip /**< SCIP data structure */
    1770 );
    1771
    1772/** returns the average number of cutoffs found after branching in given direction over all variables
    1773 *
    1774 * @return the average number of cutoffs found after branching in given direction over all variables
    1775 *
    1776 * @pre This method can be called if SCIP is in one of the following stages:
    1777 * - \ref SCIP_STAGE_SOLVING
    1778 * - \ref SCIP_STAGE_SOLVED
    1779 */
    1780SCIP_EXPORT
    1782 SCIP* scip, /**< SCIP data structure */
    1783 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
    1784 );
    1785
    1786/** returns the average number of cutoffs found after branching in given direction over all variables,
    1787 * only using the cutoff information of the current run
    1788 *
    1789 * @return the average number of cutoffs found after branching in given direction over all variables,
    1790 * only using the cutoff information of the current run
    1791 *
    1792 * @pre This method can be called if SCIP is in one of the following stages:
    1793 * - \ref SCIP_STAGE_SOLVING
    1794 * - \ref SCIP_STAGE_SOLVED
    1795 */
    1796SCIP_EXPORT
    1798 SCIP* scip, /**< SCIP data structure */
    1799 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
    1800 );
    1801
    1802/** gets the average cutoff score value over all variables
    1803 *
    1804 * @return the average cutoff score value over all variables
    1805 *
    1806 * @pre This method can be called if SCIP is in one of the following stages:
    1807 * - \ref SCIP_STAGE_SOLVING
    1808 * - \ref SCIP_STAGE_SOLVED
    1809 */
    1810SCIP_EXPORT
    1812 SCIP* scip /**< SCIP data structure */
    1813 );
    1814
    1815/** gets the average cutoff score value over all variables, only using the cutoff score information of the current run
    1816 *
    1817 * @return the average cutoff score value over all variables, only using the cutoff score information of the current run
    1818 *
    1819 * @pre This method can be called if SCIP is in one of the following stages:
    1820 * - \ref SCIP_STAGE_SOLVING
    1821 * - \ref SCIP_STAGE_SOLVED
    1822 */
    1823SCIP_EXPORT
    1825 SCIP* scip /**< SCIP data structure */
    1826 );
    1827
    1828/** returns the average normalized efficacy of a GMI cut over all variables
    1829 *
    1830 * @return the average normalized efficacy of a GMI cut over all variables
    1831 *
    1832 * @pre This method can be called if SCIP is in one of the following stages:
    1833 * - \ref SCIP_STAGE_SOLVING
    1834 * - \ref SCIP_STAGE_SOLVED
    1835 */
    1836SCIP_EXPORT
    1838 SCIP* scip /**< SCIP data structure */
    1839 );
    1840
    1841/** increases the average normalized efficacy of a GMI cut over all variables
    1842 *
    1843 * @pre This method can be called if SCIP is in one of the following stages:
    1844 * - \ref SCIP_STAGE_SOLVING
    1845 * - \ref SCIP_STAGE_SOLVED
    1846 */
    1847SCIP_EXPORT
    1848void SCIPincAvgGMIeff(
    1849 SCIP* scip, /**< SCIP data structure */
    1850 SCIP_Real gmieff /**< average normalized GMI efficacy over all variables */
    1851 );
    1852
    1853/** computes a deterministic measure of time from statistics
    1854 *
    1855 * @return the deterministic time
    1856 *
    1857 * @pre This method can be called if SCIP is in one of the following stages:
    1858 * - \ref SCIP_STAGE_PRESOLVING
    1859 * - \ref SCIP_STAGE_PRESOLVED
    1860 * - \ref SCIP_STAGE_SOLVING
    1861 * - \ref SCIP_STAGE_SOLVED
    1862 */
    1863SCIP_EXPORT
    1865 SCIP* scip /**< SCIP data structure */
    1866 );
    1867
    1868/** outputs status statistics
    1869 *
    1870 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
    1871 * thus may correspond to the original status.
    1872 *
    1873 * @pre This method can be called if SCIP is in one of the following stages:
    1874 * - \ref SCIP_STAGE_INIT
    1875 * - \ref SCIP_STAGE_PROBLEM
    1876 * - \ref SCIP_STAGE_TRANSFORMED
    1877 * - \ref SCIP_STAGE_INITPRESOLVE
    1878 * - \ref SCIP_STAGE_PRESOLVING
    1879 * - \ref SCIP_STAGE_EXITPRESOLVE
    1880 * - \ref SCIP_STAGE_PRESOLVED
    1881 * - \ref SCIP_STAGE_SOLVING
    1882 * - \ref SCIP_STAGE_SOLVED
    1883 */
    1884SCIP_EXPORT
    1886 SCIP* scip, /**< SCIP data structure */
    1887 FILE* file /**< output file */
    1888 );
    1889
    1890/** collects status statistics in a SCIP_DATATREE object
    1891 *
    1892 * This function sets:
    1893 * - status: the current status of the solver
    1894 * - info: info about the keys and values stored in the datatree
    1895 *
    1896 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
    1897 * thus may correspond to the original status.
    1898 *
    1899 * @pre This method can be called if SCIP is in one of the following stages:
    1900 * - \ref SCIP_STAGE_INIT
    1901 * - \ref SCIP_STAGE_PROBLEM
    1902 * - \ref SCIP_STAGE_TRANSFORMED
    1903 * - \ref SCIP_STAGE_INITPRESOLVE
    1904 * - \ref SCIP_STAGE_PRESOLVING
    1905 * - \ref SCIP_STAGE_EXITPRESOLVE
    1906 * - \ref SCIP_STAGE_PRESOLVED
    1907 * - \ref SCIP_STAGE_SOLVING
    1908 * - \ref SCIP_STAGE_SOLVED
    1909 */
    1910SCIP_EXPORT
    1912 SCIP* scip, /**< SCIP data structure */
    1913 SCIP_DATATREE* datatree /**< data tree */
    1914 );
    1915
    1916/** outputs timing statistics
    1917 *
    1918 * @pre This method can be called if SCIP is in one of the following stages:
    1919 * - \ref SCIP_STAGE_PROBLEM
    1920 * - \ref SCIP_STAGE_TRANSFORMED
    1921 * - \ref SCIP_STAGE_INITPRESOLVE
    1922 * - \ref SCIP_STAGE_PRESOLVING
    1923 * - \ref SCIP_STAGE_EXITPRESOLVE
    1924 * - \ref SCIP_STAGE_PRESOLVED
    1925 * - \ref SCIP_STAGE_SOLVING
    1926 * - \ref SCIP_STAGE_SOLVED
    1927 */
    1928SCIP_EXPORT
    1930 SCIP* scip, /**< SCIP data structure */
    1931 FILE* file /**< output file */
    1932 );
    1933
    1934/** collects timing statistics in SCIP_DATATREE
    1935 *
    1936 * The following keys are set:
    1937 * - "total_time": Total time spent in SCIP.
    1938 * - "solving_time": Time spent solving the problem.
    1939 * - "presolving_time": Time spent in presolving.
    1940 * - "reading_time": Time spent reading the problem.
    1941 * - "copy_time": Time spent copying the problem (if applicable).
    1942 *
    1943 * @pre This method can be called if SCIP is in one of the following stages:
    1944 * - \ref SCIP_STAGE_PROBLEM
    1945 * - \ref SCIP_STAGE_TRANSFORMED
    1946 * - \ref SCIP_STAGE_INITPRESOLVE
    1947 * - \ref SCIP_STAGE_PRESOLVING
    1948 * - \ref SCIP_STAGE_EXITPRESOLVE
    1949 * - \ref SCIP_STAGE_PRESOLVED
    1950 * - \ref SCIP_STAGE_SOLVING
    1951 * - \ref SCIP_STAGE_SOLVED
    1952 */
    1953SCIP_EXPORT
    1955 SCIP* scip, /**< SCIP data structure */
    1956 SCIP_DATATREE* datatree /**< data tree */
    1957 );
    1958
    1959/** outputs statistics for original problem
    1960 *
    1961 * @pre This method can be called if SCIP is in one of the following stages:
    1962 * - \ref SCIP_STAGE_PROBLEM
    1963 * - \ref SCIP_STAGE_TRANSFORMED
    1964 * - \ref SCIP_STAGE_INITPRESOLVE
    1965 * - \ref SCIP_STAGE_PRESOLVING
    1966 * - \ref SCIP_STAGE_EXITPRESOLVE
    1967 * - \ref SCIP_STAGE_PRESOLVED
    1968 * - \ref SCIP_STAGE_SOLVING
    1969 * - \ref SCIP_STAGE_SOLVED
    1970 */
    1971SCIP_EXPORT
    1973 SCIP* scip, /**< SCIP data structure */
    1974 FILE* file /**< output file (or NULL for standard output) */
    1975 );
    1976
    1977/** collects statistics for original problem in a SCIP_DATATREE object
    1978 *
    1979 * @pre This method can be called if SCIP is in one of the following stages:
    1980 * - \ref SCIP_STAGE_PROBLEM
    1981 * - \ref SCIP_STAGE_TRANSFORMED
    1982 * - \ref SCIP_STAGE_INITPRESOLVE
    1983 * - \ref SCIP_STAGE_PRESOLVING
    1984 * - \ref SCIP_STAGE_EXITPRESOLVE
    1985 * - \ref SCIP_STAGE_PRESOLVED
    1986 * - \ref SCIP_STAGE_SOLVING
    1987 * - \ref SCIP_STAGE_SOLVED
    1988 */
    1989SCIP_EXPORT
    1991 SCIP* scip, /**< SCIP data structure */
    1992 SCIP_DATATREE* datatree /**< data tree */
    1993 );
    1994
    1995/** outputs statistics for transformed problem
    1996 *
    1997 * @pre This method can be called if SCIP is in one of the following stages:
    1998 * - \ref SCIP_STAGE_PROBLEM
    1999 * - \ref SCIP_STAGE_TRANSFORMED
    2000 * - \ref SCIP_STAGE_INITPRESOLVE
    2001 * - \ref SCIP_STAGE_PRESOLVING
    2002 * - \ref SCIP_STAGE_EXITPRESOLVE
    2003 * - \ref SCIP_STAGE_PRESOLVED
    2004 * - \ref SCIP_STAGE_SOLVING
    2005 * - \ref SCIP_STAGE_SOLVED
    2006 */
    2007SCIP_EXPORT
    2009 SCIP* scip, /**< SCIP data structure */
    2010 FILE* file /**< output file */
    2011 );
    2012
    2013/** collects statistics for transformed problem
    2014 *
    2015 * @pre This method can be called if SCIP is in one of the following stages:
    2016 * - \ref SCIP_STAGE_PROBLEM
    2017 * - \ref SCIP_STAGE_TRANSFORMED
    2018 * - \ref SCIP_STAGE_INITPRESOLVE
    2019 * - \ref SCIP_STAGE_PRESOLVING
    2020 * - \ref SCIP_STAGE_EXITPRESOLVE
    2021 * - \ref SCIP_STAGE_PRESOLVED
    2022 * - \ref SCIP_STAGE_SOLVING
    2023 * - \ref SCIP_STAGE_SOLVED
    2024 */
    2025SCIP_EXPORT
    2027 SCIP* scip, /**< SCIP data structure */
    2028 SCIP_DATATREE* datatree /**< data tree */
    2029 );
    2030
    2031/** outputs presolver statistics
    2032 *
    2033 * @pre This method can be called if SCIP is in one of the following stages:
    2034 * - \ref SCIP_STAGE_TRANSFORMED
    2035 * - \ref SCIP_STAGE_INITPRESOLVE
    2036 * - \ref SCIP_STAGE_PRESOLVING
    2037 * - \ref SCIP_STAGE_EXITPRESOLVE
    2038 * - \ref SCIP_STAGE_PRESOLVED
    2039 * - \ref SCIP_STAGE_SOLVING
    2040 * - \ref SCIP_STAGE_SOLVED
    2041 */
    2042SCIP_EXPORT
    2044 SCIP* scip, /**< SCIP data structure */
    2045 FILE* file /**< output file */
    2046 );
    2047
    2048/** collects presolver statistics
    2049 *
    2050 * @pre This method can be called if SCIP is in one of the following stages:
    2051 * - \ref SCIP_STAGE_TRANSFORMED
    2052 * - \ref SCIP_STAGE_INITPRESOLVE
    2053 * - \ref SCIP_STAGE_PRESOLVING
    2054 * - \ref SCIP_STAGE_EXITPRESOLVE
    2055 * - \ref SCIP_STAGE_PRESOLVED
    2056 * - \ref SCIP_STAGE_SOLVING
    2057 * - \ref SCIP_STAGE_SOLVED
    2058 */
    2059SCIP_EXPORT
    2061 SCIP* scip, /**< SCIP data structure */
    2062 SCIP_DATATREE* datatree /**< data tree */
    2063 );
    2064
    2065/** outputs constraint statistics
    2066 *
    2067 * @pre This method can be called if SCIP is in one of the following stages:
    2068 * - \ref SCIP_STAGE_TRANSFORMED
    2069 * - \ref SCIP_STAGE_INITPRESOLVE
    2070 * - \ref SCIP_STAGE_PRESOLVING
    2071 * - \ref SCIP_STAGE_EXITPRESOLVE
    2072 * - \ref SCIP_STAGE_PRESOLVED
    2073 * - \ref SCIP_STAGE_SOLVING
    2074 * - \ref SCIP_STAGE_SOLVED
    2075 */
    2076SCIP_EXPORT
    2078 SCIP* scip, /**< SCIP data structure */
    2079 FILE* file /**< output file */
    2080 );
    2081
    2082/** collects constraint statistics
    2083 *
    2084 * @pre This method can be called if SCIP is in one of the following stages:
    2085 * - \ref SCIP_STAGE_TRANSFORMED
    2086 * - \ref SCIP_STAGE_INITPRESOLVE
    2087 * - \ref SCIP_STAGE_PRESOLVING
    2088 * - \ref SCIP_STAGE_EXITPRESOLVE
    2089 * - \ref SCIP_STAGE_PRESOLVED
    2090 * - \ref SCIP_STAGE_SOLVING
    2091 * - \ref SCIP_STAGE_SOLVED
    2092 */
    2093SCIP_EXPORT
    2095 SCIP* scip, /**< SCIP data structure */
    2096 SCIP_DATATREE* datatree /**< data tree */
    2097 );
    2098
    2099/** outputs constraint timing statistics
    2100 *
    2101 * @pre This method can be called if SCIP is in one of the following stages:
    2102 * - \ref SCIP_STAGE_TRANSFORMED
    2103 * - \ref SCIP_STAGE_INITPRESOLVE
    2104 * - \ref SCIP_STAGE_PRESOLVING
    2105 * - \ref SCIP_STAGE_EXITPRESOLVE
    2106 * - \ref SCIP_STAGE_PRESOLVED
    2107 * - \ref SCIP_STAGE_SOLVING
    2108 * - \ref SCIP_STAGE_SOLVED
    2109 */
    2110SCIP_EXPORT
    2112 SCIP* scip, /**< SCIP data structure */
    2113 FILE* file /**< output file */
    2114 );
    2115
    2116/** collects constraint timing statistics
    2117 *
    2118 * @pre This method can be called if SCIP is in one of the following stages:
    2119 * - \ref SCIP_STAGE_TRANSFORMED
    2120 * - \ref SCIP_STAGE_INITPRESOLVE
    2121 * - \ref SCIP_STAGE_PRESOLVING
    2122 * - \ref SCIP_STAGE_EXITPRESOLVE
    2123 * - \ref SCIP_STAGE_PRESOLVED
    2124 * - \ref SCIP_STAGE_SOLVING
    2125 * - \ref SCIP_STAGE_SOLVED
    2126 */
    2127SCIP_EXPORT
    2129 SCIP* scip, /**< SCIP data structure */
    2130 SCIP_DATATREE* datatree /**< data tree */
    2131 );
    2132
    2133/** outputs propagator statistics
    2134 *
    2135 * @pre This method can be called if SCIP is in one of the following stages:
    2136 * - \ref SCIP_STAGE_TRANSFORMED
    2137 * - \ref SCIP_STAGE_INITPRESOLVE
    2138 * - \ref SCIP_STAGE_PRESOLVING
    2139 * - \ref SCIP_STAGE_EXITPRESOLVE
    2140 * - \ref SCIP_STAGE_PRESOLVED
    2141 * - \ref SCIP_STAGE_SOLVING
    2142 * - \ref SCIP_STAGE_SOLVED
    2143 */
    2144SCIP_EXPORT
    2146 SCIP* scip, /**< SCIP data structure */
    2147 FILE* file /**< output file */
    2148 );
    2149
    2150/** collects propagator statistics
    2151 *
    2152 * @pre This method can be called if SCIP is in one of the following stages:
    2153 * - \ref SCIP_STAGE_TRANSFORMED
    2154 * - \ref SCIP_STAGE_INITPRESOLVE
    2155 * - \ref SCIP_STAGE_PRESOLVING
    2156 * - \ref SCIP_STAGE_EXITPRESOLVE
    2157 * - \ref SCIP_STAGE_PRESOLVED
    2158 * - \ref SCIP_STAGE_SOLVING
    2159 * - \ref SCIP_STAGE_SOLVED
    2160 */
    2161SCIP_EXPORT
    2163 SCIP* scip, /**< SCIP data structure */
    2164 SCIP_DATATREE* datatree /**< data tree */
    2165 );
    2166
    2167/** outputs conflict statistics
    2168 *
    2169 * @pre This method can be called if SCIP is in one of the following stages:
    2170 * - \ref SCIP_STAGE_TRANSFORMED
    2171 * - \ref SCIP_STAGE_INITPRESOLVE
    2172 * - \ref SCIP_STAGE_PRESOLVING
    2173 * - \ref SCIP_STAGE_EXITPRESOLVE
    2174 * - \ref SCIP_STAGE_PRESOLVED
    2175 * - \ref SCIP_STAGE_SOLVING
    2176 * - \ref SCIP_STAGE_SOLVED
    2177 */
    2178SCIP_EXPORT
    2180 SCIP* scip, /**< SCIP data structure */
    2181 FILE* file /**< output file */
    2182 );
    2183
    2184/** collects conflict statistics
    2185 *
    2186 * @pre This method can be called if SCIP is in one of the following stages:
    2187 * - \ref SCIP_STAGE_TRANSFORMED
    2188 * - \ref SCIP_STAGE_INITPRESOLVE
    2189 * - \ref SCIP_STAGE_PRESOLVING
    2190 * - \ref SCIP_STAGE_EXITPRESOLVE
    2191 * - \ref SCIP_STAGE_PRESOLVED
    2192 * - \ref SCIP_STAGE_SOLVING
    2193 * - \ref SCIP_STAGE_SOLVED
    2194 */
    2195SCIP_EXPORT
    2197 SCIP* scip, /**< SCIP data structure */
    2198 SCIP_DATATREE* datatree /**< data tree */
    2199 );
    2200
    2201/** outputs separator statistics
    2202 *
    2203 * Columns:
    2204 * - RootCalls: The number of calls that happened at the root.
    2205 * - FoundCuts: The total number of cuts generated by the separators.
    2206 * Note: Cutpool-FoundCuts \f$= \sum_{i=1}^nsepas ( Foundcuts_i - DirectAdd_i )\f$.
    2207 * - ViaPoolAdd: The total number of cuts added to the sepastore from the cutpool.
    2208 * - DirectAdd: The total number of cuts added directly to the sepastore from the separator.
    2209 * - Applied: The sum of all cuts from the separator that were applied to the LP.
    2210 * - ViaPoolApp: The number of cuts that entered the sepastore from the cutpool that were applied to the LP.
    2211 * - DirectApp: The number of cuts that entered the sepastore directly and were applied to the LP.
    2212 *
    2213 * The number of cuts ViaPoolAdd + Directly should be equal to the number of cuts Filtered + Forced + Selected in the
    2214 * cutselector statistics.
    2215 *
    2216 * @note The following edge case may lead to over or undercounting of statistics: When SCIPapplyCutsProbing() is
    2217 * called, cuts are counted for the cut selection statistics, but not for the separator statistics. This
    2218 * happens, e.g., in the default plugin prop_obbt.c.
    2219 *
    2220 * @pre This method can be called if SCIP is in one of the following stages:
    2221 * - \ref SCIP_STAGE_SOLVING
    2222 * - \ref SCIP_STAGE_SOLVED
    2223 */
    2224SCIP_EXPORT
    2226 SCIP* scip, /**< SCIP data structure */
    2227 FILE* file /**< output file */
    2228 );
    2229
    2230/** collects separator statistics
    2231 *
    2232 * @pre This method can be called if SCIP is in one of the following stages:
    2233 * - \ref SCIP_STAGE_SOLVING
    2234 * - \ref SCIP_STAGE_SOLVED
    2235 */
    2236SCIP_EXPORT
    2238 SCIP* scip, /**< SCIP data structure */
    2239 SCIP_DATATREE* datatree /**< data tree */
    2240 );
    2241
    2242/** outputs cutselector statistics
    2243 *
    2244 * @pre This method can be called if SCIP is in one of the following stages:
    2245 * - \ref SCIP_STAGE_SOLVING
    2246 * - \ref SCIP_STAGE_SOLVED
    2247 */
    2248SCIP_EXPORT
    2250 SCIP* scip, /**< SCIP data structure */
    2251 FILE* file /**< output file */
    2252 );
    2253
    2254/** collects cutselector statistics
    2255 *
    2256 * @pre This method can be called if SCIP is in one of the following stages:
    2257 * - \ref SCIP_STAGE_SOLVING
    2258 * - \ref SCIP_STAGE_SOLVED
    2259 */
    2260SCIP_EXPORT
    2262 SCIP* scip, /**< SCIP data structure */
    2263 SCIP_DATATREE* datatree /**< data tree */
    2264 );
    2265
    2266/** outputs pricer statistics
    2267 *
    2268 * @pre This method can be called if SCIP is in one of the following stages:
    2269 * - \ref SCIP_STAGE_SOLVING
    2270 * - \ref SCIP_STAGE_SOLVED
    2271 */
    2272SCIP_EXPORT
    2274 SCIP* scip, /**< SCIP data structure */
    2275 FILE* file /**< output file */
    2276 );
    2277
    2278/** collects pricer statistics
    2279 *
    2280 * @pre This method can be called if SCIP is in one of the following stages:
    2281 * - \ref SCIP_STAGE_SOLVING
    2282 * - \ref SCIP_STAGE_SOLVED
    2283 */
    2284SCIP_EXPORT
    2286 SCIP* scip, /**< SCIP data structure */
    2287 SCIP_DATATREE* datatree /**< data tree */
    2288 );
    2289
    2290/** outputs branching rule statistics
    2291 *
    2292 * @pre This method can be called if SCIP is in one of the following stages:
    2293 * - \ref SCIP_STAGE_SOLVING
    2294 * - \ref SCIP_STAGE_SOLVED
    2295 */
    2296SCIP_EXPORT
    2298 SCIP* scip, /**< SCIP data structure */
    2299 FILE* file /**< output file */
    2300 );
    2301
    2302
    2303/** collects branching rule statistics in a SCIP_DATATREE object */
    2304SCIP_EXPORT
    2306 SCIP* scip, /**< SCIP data structure */
    2307 SCIP_DATATREE* datatree /**< data tree */
    2308 );
    2309
    2310/** outputs heuristics statistics
    2311 *
    2312 * @pre This method can be called if SCIP is in one of the following stages:
    2313 * - \ref SCIP_STAGE_PRESOLVING
    2314 * - \ref SCIP_STAGE_EXITPRESOLVE
    2315 * - \ref SCIP_STAGE_PRESOLVED
    2316 * - \ref SCIP_STAGE_SOLVING
    2317 * - \ref SCIP_STAGE_SOLVED
    2318 */
    2319SCIP_EXPORT
    2321 SCIP* scip, /**< SCIP data structure */
    2322 FILE* file /**< output file */
    2323 );
    2324
    2325/** collects heuristics statistics into SCIP_DATATREE
    2326 *
    2327 * @pre This method can be called if SCIP is in one of the following stages:
    2328 * - \ref SCIP_STAGE_PRESOLVING
    2329 * - \ref SCIP_STAGE_EXITPRESOLVE
    2330 * - \ref SCIP_STAGE_PRESOLVED
    2331 * - \ref SCIP_STAGE_SOLVING
    2332 * - \ref SCIP_STAGE_SOLVED
    2333 */
    2334SCIP_EXPORT
    2336 SCIP* scip, /**< SCIP data structure */
    2337 SCIP_DATATREE* datatree /**< data tree */
    2338 );
    2339
    2340/** outputs compression statistics
    2341 *
    2342 * @pre This method can be called if SCIP is in one of the following stages:
    2343 * - \ref SCIP_STAGE_PRESOLVING
    2344 * - \ref SCIP_STAGE_EXITPRESOLVE
    2345 * - \ref SCIP_STAGE_PRESOLVED
    2346 * - \ref SCIP_STAGE_SOLVING
    2347 * - \ref SCIP_STAGE_SOLVED
    2348 */
    2349SCIP_EXPORT
    2351 SCIP* scip, /**< SCIP data structure */
    2352 FILE* file /**< output file */
    2353 );
    2354
    2355/** collects compression statistics
    2356 *
    2357 * @pre This method can be called if SCIP is in one of the following stages:
    2358 * - \ref SCIP_STAGE_PRESOLVING
    2359 * - \ref SCIP_STAGE_EXITPRESOLVE
    2360 * - \ref SCIP_STAGE_PRESOLVED
    2361 * - \ref SCIP_STAGE_SOLVING
    2362 * - \ref SCIP_STAGE_SOLVED
    2363 */
    2364SCIP_EXPORT
    2366 SCIP* scip, /**< SCIP data structure */
    2367 SCIP_DATATREE* datatree /**< data tree */
    2368 );
    2369
    2370/** outputs LP statistics
    2371 *
    2372 * @pre This method can be called if SCIP is in one of the following stages:
    2373 * - \ref SCIP_STAGE_SOLVING
    2374 * - \ref SCIP_STAGE_SOLVED
    2375 */
    2376SCIP_EXPORT
    2378 SCIP* scip, /**< SCIP data structure */
    2379 FILE* file /**< output file */
    2380 );
    2381
    2382/** collects LP statistics
    2383 *
    2384 * @pre This method can be called if SCIP is in one of the following stages:
    2385 * - \ref SCIP_STAGE_SOLVING
    2386 * - \ref SCIP_STAGE_SOLVED
    2387 */
    2388SCIP_EXPORT
    2390 SCIP* scip, /**< SCIP data structure */
    2391 SCIP_DATATREE* datatree /**< data tree */
    2392 );
    2393
    2394/** outputs NLP statistics
    2395 *
    2396 * @pre This method can be called if SCIP is in one of the following stages:
    2397 * - \ref SCIP_STAGE_SOLVING
    2398 * - \ref SCIP_STAGE_SOLVED
    2399 */
    2400SCIP_EXPORT
    2402 SCIP* scip, /**< SCIP data structure */
    2403 FILE* file /**< output file */
    2404 );
    2405
    2406/** collects NLP statistics
    2407 *
    2408 * @pre This method can be called if SCIP is in one of the following stages:
    2409 * - \ref SCIP_STAGE_SOLVING
    2410 * - \ref SCIP_STAGE_SOLVED
    2411 */
    2412SCIP_EXPORT
    2414 SCIP* scip, /**< SCIP data structure */
    2415 SCIP_DATATREE* datatree /**< data tree */
    2416 );
    2417
    2418/** outputs relaxator statistics
    2419 *
    2420 * @pre This method can be called if SCIP is in one of the following stages:
    2421 * - \ref SCIP_STAGE_SOLVING
    2422 * - \ref SCIP_STAGE_SOLVED
    2423 */
    2424SCIP_EXPORT
    2426 SCIP* scip, /**< SCIP data structure */
    2427 FILE* file /**< output file */
    2428 );
    2429
    2430/** collects relaxator statistics
    2431 *
    2432 * @pre This method can be called if SCIP is in one of the following stages:
    2433 * - \ref SCIP_STAGE_SOLVING
    2434 * - \ref SCIP_STAGE_SOLVED
    2435 */
    2436SCIP_EXPORT
    2438 SCIP* scip, /**< SCIP data structure */
    2439 SCIP_DATATREE* datatree /**< data tree */
    2440 );
    2441
    2442/** outputs tree statistics
    2443 *
    2444 * @pre This method can be called if SCIP is in one of the following stages:
    2445 * - \ref SCIP_STAGE_SOLVING
    2446 * - \ref SCIP_STAGE_SOLVED
    2447 */
    2448SCIP_EXPORT
    2450 SCIP* scip, /**< SCIP data structure */
    2451 FILE* file /**< output file */
    2452 );
    2453
    2454/** collects tree statistics
    2455 *
    2456 * @pre This method can be called if SCIP is in one of the following stages:
    2457 * - \ref SCIP_STAGE_SOLVING
    2458 * - \ref SCIP_STAGE_SOLVED
    2459 */
    2460SCIP_EXPORT
    2462 SCIP* scip, /**< SCIP data structure */
    2463 SCIP_DATATREE* datatree /**< data tree */
    2464 );
    2465
    2466/** outputs root statistics
    2467 *
    2468 * @pre This method can be called if SCIP is in one of the following stages:
    2469 * - \ref SCIP_STAGE_SOLVING
    2470 * - \ref SCIP_STAGE_SOLVED
    2471 */
    2472SCIP_EXPORT
    2474 SCIP* scip, /**< SCIP data structure */
    2475 FILE* file /**< output file */
    2476 );
    2477
    2478/** collects root statistics
    2479 *
    2480 * @pre This method can be called if SCIP is in one of the following stages:
    2481 * - \ref SCIP_STAGE_SOLVING
    2482 * - \ref SCIP_STAGE_SOLVED
    2483 */
    2484SCIP_EXPORT
    2486 SCIP* scip, /**< SCIP data structure */
    2487 SCIP_DATATREE* datatree /**< data tree */
    2488 );
    2489
    2490/** outputs solution statistics
    2491 *
    2492 * @pre This method can be called if SCIP is in one of the following stages:
    2493 * - \ref SCIP_STAGE_PRESOLVING
    2494 * - \ref SCIP_STAGE_EXITPRESOLVE
    2495 * - \ref SCIP_STAGE_PRESOLVED
    2496 * - \ref SCIP_STAGE_SOLVING
    2497 * - \ref SCIP_STAGE_SOLVED
    2498 */
    2499SCIP_EXPORT
    2501 SCIP* scip, /**< SCIP data structure */
    2502 FILE* file /**< output file */
    2503 );
    2504
    2505/** collects solution statistics
    2506 *
    2507 * @pre This method can be called if SCIP is in one of the following stages:
    2508 * - \ref SCIP_STAGE_PRESOLVING
    2509 * - \ref SCIP_STAGE_EXITPRESOLVE
    2510 * - \ref SCIP_STAGE_PRESOLVED
    2511 * - \ref SCIP_STAGE_SOLVING
    2512 * - \ref SCIP_STAGE_SOLVED
    2513 */
    2514SCIP_EXPORT
    2516 SCIP* scip, /**< SCIP data structure */
    2517 SCIP_DATATREE* datatree /**< data tree */
    2518 );
    2519
    2520/** outputs concurrent solver statistics
    2521 *
    2522 * @pre This method can be called if SCIP is in one of the following stages:
    2523 * - \ref SCIP_STAGE_TRANSFORMED
    2524 * - \ref SCIP_STAGE_INITPRESOLVE
    2525 * - \ref SCIP_STAGE_PRESOLVING
    2526 * - \ref SCIP_STAGE_EXITPRESOLVE
    2527 * - \ref SCIP_STAGE_PRESOLVED
    2528 * - \ref SCIP_STAGE_SOLVING
    2529 * - \ref SCIP_STAGE_SOLVED
    2530 */
    2531SCIP_EXPORT
    2533 SCIP* scip, /**< SCIP data structure */
    2534 FILE* file /**< output file */
    2535 );
    2536
    2537/** collects concurrent solver statistics
    2538 *
    2539 * @pre This method can be called if SCIP is in one of the following stages:
    2540 * - \ref SCIP_STAGE_TRANSFORMED
    2541 * - \ref SCIP_STAGE_INITPRESOLVE
    2542 * - \ref SCIP_STAGE_PRESOLVING
    2543 * - \ref SCIP_STAGE_EXITPRESOLVE
    2544 * - \ref SCIP_STAGE_PRESOLVED
    2545 * - \ref SCIP_STAGE_SOLVING
    2546 * - \ref SCIP_STAGE_SOLVED
    2547 */
    2548SCIP_EXPORT
    2550 SCIP* scip, /**< SCIP data structure */
    2551 SCIP_DATATREE* datatree /**< data tree */
    2552);
    2553
    2554/** outputs Benders' decomposition statistics
    2555 *
    2556 * @pre This method can be called if SCIP is in one of the following stages:
    2557 * - \ref SCIP_STAGE_SOLVING
    2558 * - \ref SCIP_STAGE_SOLVED
    2559 */
    2560SCIP_EXPORT
    2562 SCIP* scip, /**< SCIP data structure */
    2563 FILE* file /**< output file */
    2564 );
    2565
    2566/** collects Benders' decomposition statistics
    2567 *
    2568 * @pre This method can be called if SCIP is in one of the following stages:
    2569 * - \ref SCIP_STAGE_SOLVING
    2570 * - \ref SCIP_STAGE_SOLVED
    2571 */
    2572SCIP_EXPORT
    2574 SCIP* scip, /**< SCIP data structure */
    2575 SCIP_DATATREE* datatree /**< data tree */
    2576 );
    2577
    2578/** outputs expression handler statistics
    2579 *
    2580 * @pre This method can be called if SCIP is in one of the following stages:
    2581 * - \ref SCIP_STAGE_PROBLEM
    2582 * - \ref SCIP_STAGE_TRANSFORMED
    2583 * - \ref SCIP_STAGE_INITPRESOLVE
    2584 * - \ref SCIP_STAGE_PRESOLVING
    2585 * - \ref SCIP_STAGE_EXITPRESOLVE
    2586 * - \ref SCIP_STAGE_PRESOLVED
    2587 * - \ref SCIP_STAGE_SOLVING
    2588 * - \ref SCIP_STAGE_SOLVED
    2589 */
    2590SCIP_EXPORT
    2592 SCIP* scip, /**< SCIP data structure */
    2593 FILE* file /**< output file */
    2594 );
    2595
    2596/** collects expression handler statistics
    2597 *
    2598 * @pre This method can be called if SCIP is in one of the following stages:
    2599 * - \ref SCIP_STAGE_PROBLEM
    2600 * - \ref SCIP_STAGE_TRANSFORMED
    2601 * - \ref SCIP_STAGE_INITPRESOLVE
    2602 * - \ref SCIP_STAGE_PRESOLVING
    2603 * - \ref SCIP_STAGE_EXITPRESOLVE
    2604 * - \ref SCIP_STAGE_PRESOLVED
    2605 * - \ref SCIP_STAGE_SOLVING
    2606 * - \ref SCIP_STAGE_SOLVED
    2607 */
    2608SCIP_EXPORT
    2610 SCIP* scip, /**< SCIP data structure */
    2611 SCIP_DATATREE* datatree /**< data tree */
    2612 );
    2613
    2614/** outputs NLPI statistics
    2615 *
    2616 * @pre This method can be called if SCIP is in one of the following stages:
    2617 * - \ref SCIP_STAGE_PROBLEM
    2618 * - \ref SCIP_STAGE_TRANSFORMED
    2619 * - \ref SCIP_STAGE_INITPRESOLVE
    2620 * - \ref SCIP_STAGE_PRESOLVING
    2621 * - \ref SCIP_STAGE_EXITPRESOLVE
    2622 * - \ref SCIP_STAGE_PRESOLVED
    2623 * - \ref SCIP_STAGE_SOLVING
    2624 * - \ref SCIP_STAGE_SOLVED
    2625 */
    2626SCIP_EXPORT
    2628 SCIP* scip, /**< SCIP data structure */
    2629 FILE* file /**< output file */
    2630 );
    2631
    2632/** collects NLPI statistics
    2633 *
    2634 * @pre This method can be called if SCIP is in one of the following stages:
    2635 * - \ref SCIP_STAGE_PROBLEM
    2636 * - \ref SCIP_STAGE_TRANSFORMED
    2637 * - \ref SCIP_STAGE_INITPRESOLVE
    2638 * - \ref SCIP_STAGE_PRESOLVING
    2639 * - \ref SCIP_STAGE_EXITPRESOLVE
    2640 * - \ref SCIP_STAGE_PRESOLVED
    2641 * - \ref SCIP_STAGE_SOLVING
    2642 * - \ref SCIP_STAGE_SOLVED
    2643 */
    2644SCIP_EXPORT
    2646 SCIP* scip, /**< SCIP data structure */
    2647 SCIP_DATATREE* datatree /**< data tree */
    2648 );
    2649
    2650/** outputs solving statistics
    2651 *
    2652 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
    2653 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
    2654 *
    2655 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
    2656 * thus may to correspond to the original status.
    2657 *
    2658 * @pre This method can be called if SCIP is in one of the following stages:
    2659 * - \ref SCIP_STAGE_INIT
    2660 * - \ref SCIP_STAGE_PROBLEM
    2661 * - \ref SCIP_STAGE_TRANSFORMED
    2662 * - \ref SCIP_STAGE_INITPRESOLVE
    2663 * - \ref SCIP_STAGE_PRESOLVING
    2664 * - \ref SCIP_STAGE_EXITPRESOLVE
    2665 * - \ref SCIP_STAGE_PRESOLVED
    2666 * - \ref SCIP_STAGE_SOLVING
    2667 * - \ref SCIP_STAGE_SOLVED
    2668 */
    2669SCIP_EXPORT
    2671 SCIP* scip, /**< SCIP data structure */
    2672 FILE* file /**< output file (or NULL for standard output) */
    2673 );
    2674
    2675/** outputs solving statistics in JSON format
    2676 *
    2677 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
    2678 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
    2679 *
    2680 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
    2681 * thus may correspond to the original status.
    2682 *
    2683 * @pre This method can be called if SCIP is in one of the following stages:
    2684 * - \ref SCIP_STAGE_INIT
    2685 * - \ref SCIP_STAGE_PROBLEM
    2686 * - \ref SCIP_STAGE_TRANSFORMED
    2687 * - \ref SCIP_STAGE_INITPRESOLVE
    2688 * - \ref SCIP_STAGE_PRESOLVING
    2689 * - \ref SCIP_STAGE_EXITPRESOLVE
    2690 * - \ref SCIP_STAGE_PRESOLVED
    2691 * - \ref SCIP_STAGE_SOLVING
    2692 * - \ref SCIP_STAGE_SOLVED
    2693 */
    2694SCIP_EXPORT
    2696 SCIP* scip, /**< SCIP data structure */
    2697 FILE* file /**< output file (or NULL for standard output) */
    2698 );
    2699
    2700/** outputs reoptimization statistics
    2701 *
    2702 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
    2703 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
    2704 *
    2705 * @pre This method can be called if SCIP is in one of the following stages:
    2706 * - \ref SCIP_STAGE_INIT
    2707 * - \ref SCIP_STAGE_PROBLEM
    2708 * - \ref SCIP_STAGE_TRANSFORMED
    2709 * - \ref SCIP_STAGE_INITPRESOLVE
    2710 * - \ref SCIP_STAGE_PRESOLVING
    2711 * - \ref SCIP_STAGE_EXITPRESOLVE
    2712 * - \ref SCIP_STAGE_PRESOLVED
    2713 * - \ref SCIP_STAGE_SOLVING
    2714 * - \ref SCIP_STAGE_SOLVED
    2715 */
    2716SCIP_EXPORT
    2718 SCIP* scip, /**< SCIP data structure */
    2719 FILE* file /**< output file (or NULL for standard output) */
    2720 );
    2721
    2722/** outputs history statistics about branchings on variables
    2723 *
    2724 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
    2725 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
    2726 *
    2727 * @pre This method can be called if SCIP is in one of the following stages:
    2728 * - \ref SCIP_STAGE_INIT
    2729 * - \ref SCIP_STAGE_PROBLEM
    2730 * - \ref SCIP_STAGE_TRANSFORMED
    2731 * - \ref SCIP_STAGE_INITPRESOLVE
    2732 * - \ref SCIP_STAGE_PRESOLVING
    2733 * - \ref SCIP_STAGE_EXITPRESOLVE
    2734 * - \ref SCIP_STAGE_PRESOLVED
    2735 * - \ref SCIP_STAGE_SOLVING
    2736 * - \ref SCIP_STAGE_SOLVED
    2737 */
    2738SCIP_EXPORT
    2740 SCIP* scip, /**< SCIP data structure */
    2741 FILE* file /**< output file (or NULL for standard output) */
    2742 );
    2743
    2744/** collects branching statistics about variables in a SCIP_DATATREE
    2745 *
    2746 * This function collects detailed branching statistics for all variables in the SCIP instance and organizes them into
    2747 * a hierarchical structure in the provided `SCIP_DATATREE`. The statistics include locks, branchings, inferences,
    2748 * cutoffs, pseudocosts, and strong branching information.
    2749 *
    2750 * The `datatree` will contain the following keys:
    2751 * - `variables`: A nested table keyed by variable names, containing:
    2752 * - `name`: Name of the variable.
    2753 * - `priority`: Branching priority of the variable.
    2754 * - `factor`: Branching factor of the variable.
    2755 * - `locks_down`: Number of locks in the down direction.
    2756 * - `locks_up`: Number of locks in the up direction.
    2757 * - `avg_depth`: Average branching depth for the variable.
    2758 * - `branchings_down`: Number of branchings in the down direction.
    2759 * - `branchings_up`: Number of branchings in the up direction.
    2760 * - `strong_branchings`: Number of strong branchings performed on the variable.
    2761 * - `avg_inferences_down`: Average number of inferences per branching in the down direction.
    2762 * - `avg_inferences_up`: Average number of inferences per branching in the up direction.
    2763 * - `cutoff_rate_down`: Percentage of branchings in the down direction that led to cutoffs.
    2764 * - `cutoff_rate_up`: Percentage of branchings in the up direction that led to cutoffs.
    2765 * - `pseudocost_down`: Pseudocost in the down direction.
    2766 * - `pseudocost_up`: Pseudocost in the up direction.
    2767 * - `pseudocost_count_down`: Number of pseudocost updates in the down direction.
    2768 * - `pseudocost_count_up`: Number of pseudocost updates in the up direction.
    2769 * - `pseudocost_variance_down`: Variance of pseudocost in the down direction.
    2770 * - `pseudocost_variance_up`: Variance of pseudocost in the up direction.
    2771 * - `total_branchings_down`: Total number of branchings in the down direction across all variables.
    2772 * - `total_branchings_up`: Total number of branchings in the up direction across all variables.
    2773 * - `total_strong_branchings`: Total number of strong branchings across all variables.
    2774 * - `avg_inferences_down`: Average inferences per branching in the down direction across all variables.
    2775 * - `avg_inferences_up`: Average inferences per branching in the up direction across all variables.
    2776 * - `avg_cutoff_rate_down`: Average cutoff rate for branchings in the down direction across all variables.
    2777 * - `avg_cutoff_rate_up`: Average cutoff rate for branchings in the up direction across all variables.
    2778 * - `status`: If the problem is not solved, a string indicating that statistics are not available.
    2779 *
    2780 * @pre This method can be called if SCIP is in one of the following stages:
    2781 * - \ref SCIP_STAGE_INIT
    2782 * - \ref SCIP_STAGE_PROBLEM
    2783 * - \ref SCIP_STAGE_TRANSFORMED
    2784 * - \ref SCIP_STAGE_INITPRESOLVE
    2785 * - \ref SCIP_STAGE_PRESOLVING
    2786 * - \ref SCIP_STAGE_EXITPRESOLVE
    2787 * - \ref SCIP_STAGE_PRESOLVED
    2788 * - \ref SCIP_STAGE_SOLVING
    2789 * - \ref SCIP_STAGE_SOLVED
    2790 *
    2791 * @return \ref SCIP_OKAY if everything worked. Otherwise, a suitable error code is returned.
    2792 */
    2793SCIP_EXPORT
    2795 SCIP* scip, /**< SCIP data structure */
    2796 SCIP_DATATREE* datatree /**< data tree */
    2797 );
    2798
    2799/** outputs node information display line
    2800 *
    2801 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
    2802 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
    2803 *
    2804 * @pre This method can be called if SCIP is in one of the following stages:
    2805 * - \ref SCIP_STAGE_SOLVING
    2806 */
    2807SCIP_EXPORT
    2809 SCIP* scip, /**< SCIP data structure */
    2810 FILE* file, /**< output file (or NULL for standard output) */
    2811 SCIP_VERBLEVEL verblevel, /**< minimal verbosity level to actually display the information line */
    2812 SCIP_Bool endline /**< should the line be terminated with a newline symbol? */
    2813 );
    2814
    2815/** gets total number of implications between variables that are stored in the implication graph
    2816 *
    2817 * @return the total number of implications between variables that are stored in the implication graph
    2818 *
    2819 * @pre This method can be called if SCIP is in one of the following stages:
    2820 * - \ref SCIP_STAGE_INITPRESOLVE
    2821 * - \ref SCIP_STAGE_PRESOLVING
    2822 * - \ref SCIP_STAGE_EXITPRESOLVE
    2823 * - \ref SCIP_STAGE_PRESOLVED
    2824 * - \ref SCIP_STAGE_INITSOLVE
    2825 * - \ref SCIP_STAGE_SOLVING
    2826 * - \ref SCIP_STAGE_SOLVED
    2827 */
    2828SCIP_EXPORT
    2830 SCIP* scip /**< SCIP data structure */
    2831 );
    2832
    2833/** update statistical information when a new solution was found */
    2834SCIP_EXPORT
    2836 SCIP* scip /**< SCIP data structure */
    2837 );
    2838
    2839/** recomputes and returns the primal dual gap stored in the stats
    2840 *
    2841 * @return returns the primal dual gap stored in the stats
    2842 */
    2843SCIP_EXPORT
    2845 SCIP* scip /**< SCIP data structure */
    2846 );
    2847
    2848/**@} */
    2849
    2850#ifdef __cplusplus
    2851}
    2852#endif
    2853
    2854#endif
    common defines and data types used in all packages of SCIP
    #define SCIP_Longint
    Definition: def.h:141
    #define SCIP_Bool
    Definition: def.h:91
    #define SCIP_Real
    Definition: def.h:156
    #define nnodes
    Definition: gastrans.c:74
    void SCIPprintPropagatorStatistics(SCIP *scip, FILE *file)
    void SCIPprintTreeStatistics(SCIP *scip, FILE *file)
    void SCIPprintStatusStatistics(SCIP *scip, FILE *file)
    SCIP_Real SCIPgetAvgConflictScoreCurrentRun(SCIP *scip)
    SCIP_RETCODE SCIPcollectTimingStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_RATIONAL * SCIPgetCutoffboundExact(SCIP *scip)
    void SCIPprintCompressionStatistics(SCIP *scip, FILE *file)
    SCIP_Real SCIPgetAvgCutoffsCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir)
    void SCIPprintRootStatistics(SCIP *scip, FILE *file)
    SCIP_Bool SCIPisPrimalboundSol(SCIP *scip)
    SCIP_RETCODE SCIPcollectRelaxatorStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Longint SCIPgetNConflictDualproofsApplied(SCIP *scip)
    int SCIPgetNImplications(SCIP *scip)
    void SCIPprintConstraintTimingStatistics(SCIP *scip, FILE *file)
    void SCIPaddNNodes(SCIP *scip, SCIP_Longint nnodes)
    void SCIPincAvgGMIeff(SCIP *scip, SCIP_Real gmieff)
    SCIP_RETCODE SCIPcollectCutselectorStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Real SCIPgetDeterministicTime(SCIP *scip)
    SCIP_Longint SCIPgetNSolsFound(SCIP *scip)
    SCIP_Real SCIPgetPrimalbound(SCIP *scip)
    int SCIPgetMaxDepth(SCIP *scip)
    SCIP_RETCODE SCIPcollectNLPIStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_RETCODE SCIPupdateCutoffbound(SCIP *scip, SCIP_Real cutoffbound)
    SCIP_Longint SCIPgetNBarrierLPIterations(SCIP *scip)
    void SCIPgetUpperboundExact(SCIP *scip, SCIP_RATIONAL *result)
    SCIP_Real SCIPgetAvgInferenceScore(SCIP *scip)
    SCIP_RETCODE SCIPcollectStatusStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Longint SCIPgetNDivingLPIterations(SCIP *scip)
    SCIP_Real SCIPgetAvgPseudocostScoreCurrentRun(SCIP *scip)
    SCIP_RETCODE SCIPcollectConstraintStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_RETCODE SCIPcollectHeuristicStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Real SCIPgetUpperbound(SCIP *scip)
    SCIP_Real SCIPgetLowerboundRoot(SCIP *scip)
    SCIP_Real SCIPgetAvgConflictlengthScore(SCIP *scip)
    void SCIPprintSolutionStatistics(SCIP *scip, FILE *file)
    SCIP_RETCODE SCIPcollectBendersStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Real SCIPgetAvgPseudocostCount(SCIP *scip, SCIP_BRANCHDIR dir)
    SCIP_Longint SCIPgetNInfeasibleLeaves(SCIP *scip)
    void SCIPprintRelaxatorStatistics(SCIP *scip, FILE *file)
    SCIP_RETCODE SCIPcollectNLPStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Real SCIPgetGap(SCIP *scip)
    SCIP_Longint SCIPgetNResolveLPIterations(SCIP *scip)
    void SCIPprintOrigProblemStatistics(SCIP *scip, FILE *file)
    SCIP_Longint SCIPgetNNodeZeroIterationLPs(SCIP *scip)
    SCIP_Longint SCIPgetNNodes(SCIP *scip)
    SCIP_Longint SCIPgetNFeasibleLeaves(SCIP *scip)
    SCIP_Longint SCIPgetNNodeInitLPs(SCIP *scip)
    int SCIPgetMaxTotalDepth(SCIP *scip)
    SCIP_RETCODE SCIPcollectConflictStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    int SCIPgetNPricevars(SCIP *scip)
    SCIP_Longint SCIPgetNResConflictConssApplied(SCIP *scip)
    int SCIPgetNRootboundChgsRun(SCIP *scip)
    SCIP_Real SCIPgetDualbound(SCIP *scip)
    SCIP_RETCODE SCIPcollectSeparatorStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    void SCIPprintLPStatistics(SCIP *scip, FILE *file)
    SCIP_Longint SCIPgetNRootStrongbranchs(SCIP *scip)
    int SCIPgetNEnabledConss(SCIP *scip)
    int SCIPgetNSepaRounds(SCIP *scip)
    int SCIPgetNCutsFoundRound(SCIP *scip)
    SCIP_RETCODE SCIPprintStatisticsJson(SCIP *scip, FILE *file)
    void SCIPprintNLPStatistics(SCIP *scip, FILE *file)
    int SCIPgetNRootboundChgs(SCIP *scip)
    SCIP_Real SCIPgetFirstPrimalBound(SCIP *scip)
    void SCIPgetDualboundExact(SCIP *scip, SCIP_RATIONAL *result)
    SCIP_Longint SCIPgetNStrongbranchLPIterations(SCIP *scip)
    int SCIPgetNPricevarsApplied(SCIP *scip)
    SCIP_RETCODE SCIPcollectTreeStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    int SCIPgetNCutsApplied(SCIP *scip)
    void SCIPprintPricerStatistics(SCIP *scip, FILE *file)
    SCIP_RETCODE SCIPprintStatistics(SCIP *scip, FILE *file)
    SCIP_RETCODE SCIPcollectOrigProblemStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Real SCIPgetLowerbound(SCIP *scip)
    SCIP_Real SCIPgetAvgLowerbound(SCIP *scip)
    SCIP_RETCODE SCIPcollectBranchruleStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_RETCODE SCIPcollectPricerStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_RETCODE SCIPprintBranchingStatistics(SCIP *scip, FILE *file)
    SCIP_Longint SCIPgetNTotalNodes(SCIP *scip)
    void SCIPprintSeparatorStatistics(SCIP *scip, FILE *file)
    void SCIPprintConcsolverStatistics(SCIP *scip, FILE *file)
    SCIP_RETCODE SCIPcollectRootStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Longint SCIPgetNResolveLPs(SCIP *scip)
    void SCIPgetPrimalboundExact(SCIP *scip, SCIP_RATIONAL *result)
    int SCIPgetNRuns(SCIP *scip)
    void SCIPprintNLPIStatistics(SCIP *scip, FILE *file)
    SCIP_Longint SCIPgetNNodeLPIterations(SCIP *scip)
    SCIP_Longint SCIPgetNDualLPIterations(SCIP *scip)
    void SCIPprintBranchruleStatistics(SCIP *scip, FILE *file)
    int SCIPgetNActiveConss(SCIP *scip)
    void SCIPprintConflictStatistics(SCIP *scip, FILE *file)
    SCIP_Real SCIPgetDualboundRoot(SCIP *scip)
    SCIP_Longint SCIPgetNDualLPs(SCIP *scip)
    SCIP_Real SCIPgetAvgCutoffScoreCurrentRun(SCIP *scip)
    SCIP_Real SCIPgetAvgGMIeff(SCIP *scip)
    void SCIPprintExpressionHandlerStatistics(SCIP *scip, FILE *file)
    int SCIPgetNPriceRounds(SCIP *scip)
    SCIP_Longint SCIPgetNLPs(SCIP *scip)
    int SCIPgetNReoptRuns(SCIP *scip)
    SCIP_Real SCIPgetAvgDualbound(SCIP *scip)
    void SCIPprintBendersStatistics(SCIP *scip, FILE *file)
    void SCIPprintTimingStatistics(SCIP *scip, FILE *file)
    SCIP_Longint SCIPgetNRootLPIterations(SCIP *scip)
    SCIP_Longint SCIPgetNPrimalResolveLPIterations(SCIP *scip)
    SCIP_Real SCIPgetAvgInferenceScoreCurrentRun(SCIP *scip)
    void SCIPprintCutselectorStatistics(SCIP *scip, FILE *file)
    SCIP_RETCODE SCIPcollectExpressionHandlerStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Real SCIPgetAvgConflictScore(SCIP *scip)
    SCIP_Longint SCIPgetNLimSolsFound(SCIP *scip)
    void SCIPstoreSolutionGap(SCIP *scip)
    SCIP_Real SCIPgetAvgPseudocost(SCIP *scip, SCIP_Real solvaldelta)
    int SCIPgetNRootIntFixingsRun(SCIP *scip)
    SCIP_RETCODE SCIPcollectCompressionStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    void SCIPprintConstraintStatistics(SCIP *scip, FILE *file)
    SCIP_Longint SCIPgetNBacktracks(SCIP *scip)
    SCIP_RETCODE SCIPprintReoptStatistics(SCIP *scip, FILE *file)
    SCIP_Longint SCIPgetNBarrierLPs(SCIP *scip)
    SCIP_Longint SCIPgetNDualResolveLPIterations(SCIP *scip)
    SCIP_Real SCIPgetTransGap(SCIP *scip)
    SCIP_Longint SCIPgetNBestSolsFound(SCIP *scip)
    SCIP_Real SCIPgetAvgPseudocostScore(SCIP *scip)
    SCIP_Real SCIPgetPseudocostCount(SCIP *scip, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
    SCIP_Real SCIPgetCutoffbound(SCIP *scip)
    SCIP_Real SCIPgetFirstLPLowerboundRoot(SCIP *scip)
    SCIP_Real SCIPgetAvgPseudocostCountCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir)
    SCIP_Longint SCIPgetNExactLPs(SCIP *scip)
    SCIP_Longint SCIPgetNConflictConssApplied(SCIP *scip)
    SCIP_Longint SCIPgetNObjlimLeaves(SCIP *scip)
    SCIP_RETCODE SCIPcollectPropagatorStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    int SCIPgetNCutsFound(SCIP *scip)
    void SCIPprintPresolverStatistics(SCIP *scip, FILE *file)
    SCIP_RETCODE SCIPcollectPresolverStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    void SCIPprintTransProblemStatistics(SCIP *scip, FILE *file)
    SCIP_RETCODE SCIPprintDisplayLine(SCIP *scip, FILE *file, SCIP_VERBLEVEL verblevel, SCIP_Bool endline)
    SCIP_Longint SCIPgetNDivingLPs(SCIP *scip)
    SCIP_Longint SCIPgetNNodeLPs(SCIP *scip)
    SCIP_Real SCIPgetFirstLPDualboundRoot(SCIP *scip)
    SCIP_Real SCIPgetAvgConflictlengthScoreCurrentRun(SCIP *scip)
    SCIP_Longint SCIPgetNRootFirstLPIterations(SCIP *scip)
    int SCIPgetNPricevarsFound(SCIP *scip)
    void SCIPgetLowerboundExact(SCIP *scip, SCIP_RATIONAL *result)
    SCIP_Longint SCIPgetNNodeInitLPIterations(SCIP *scip)
    SCIP_Longint SCIPgetNNZs(SCIP *scip)
    SCIP_Longint SCIPgetNDelayedCutoffs(SCIP *scip)
    SCIP_Longint SCIPgetNPrimalResolveLPs(SCIP *scip)
    SCIP_Longint SCIPgetNConflictConssFound(SCIP *scip)
    SCIP_Real SCIPgetAvgDPseudocostScore(SCIP *scip, SCIP_Real discountfac)
    SCIP_Real SCIPgetAvgPseudocostCurrentRun(SCIP *scip, SCIP_Real solvaldelta)
    SCIP_Real SCIPgetAvgInferences(SCIP *scip, SCIP_BRANCHDIR dir)
    SCIP_Longint SCIPgetNPrimalLPIterations(SCIP *scip)
    SCIP_Longint SCIPgetNStrongbranchs(SCIP *scip)
    SCIP_RETCODE SCIPcollectLPStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_RETCODE SCIPcollectConcsolverStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_RETCODE SCIPcollectBranchingStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    int SCIPgetNConflictConssFoundNode(SCIP *scip)
    SCIP_Longint SCIPgetNLPIterations(SCIP *scip)
    SCIP_RETCODE SCIPcollectConstraintTimingStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Real SCIPgetAvgInferencesCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir)
    SCIP_Longint SCIPgetNDualResolveLPs(SCIP *scip)
    void SCIPprintHeuristicStatistics(SCIP *scip, FILE *file)
    SCIP_Real SCIPgetPseudocostVariance(SCIP *scip, SCIP_BRANCHDIR branchdir, SCIP_Bool onlycurrentrun)
    SCIP_Real SCIPgetPrimalDualIntegral(SCIP *scip)
    SCIP_RETCODE SCIPcollectTransProblemStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Longint SCIPgetNPrimalLPs(SCIP *scip)
    SCIP_Real SCIPgetAvgCutoffs(SCIP *scip, SCIP_BRANCHDIR dir)
    SCIP_Longint SCIPgetNRootStrongbranchLPIterations(SCIP *scip)
    SCIP_RETCODE SCIPcollectSolutionStatistics(SCIP *scip, SCIP_DATATREE *datatree)
    SCIP_Real SCIPgetAvgCutoffScore(SCIP *scip)
    type definitions for data tree
    type definitions for branching and inference history
    enum SCIP_BranchDir SCIP_BRANCHDIR
    Definition: type_history.h:48
    type definitions for message output methods
    enum SCIP_VerbLevel SCIP_VERBLEVEL
    Definition: type_message.h:64
    type definitions for rational numbers
    type definitions for return codes for SCIP methods
    enum SCIP_Retcode SCIP_RETCODE
    Definition: type_retcode.h:63
    type definitions for SCIP's main datastructure