Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    functions for nonlinearity handlers of nonlinear constraint handler

    Author
    Ksenia Bestuzheva
    Benjamin Mueller
    Felipe Serrano
    Stefan Vigerske

    Definition in file nlhdlr.c.

    #include <assert.h>
    #include <string.h>
    #include "scip/pub_nlhdlr.h"
    #include "scip/nlhdlr.h"
    #include "scip/struct_nlhdlr.h"
    #include "scip/scip_datatree.h"
    #include "scip/scip_timing.h"
    #include "scip/scip_mem.h"
    #include "scip/scip_param.h"
    #include "scip/scip_message.h"
    #include "scip/pub_message.h"
    #include "scip/pub_misc.h"

    Go to the source code of this file.

    Functions

    void SCIPnlhdlrSetCopyHdlr (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRCOPYHDLR((*copy)))
     
    void SCIPnlhdlrSetFreeHdlrData (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRFREEHDLRDATA((*freehdlrdata)))
     
    void SCIPnlhdlrSetFreeExprData (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRFREEEXPRDATA((*freeexprdata)))
     
    void SCIPnlhdlrSetInitExit (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINIT((*init)), SCIP_DECL_NLHDLREXIT((*exit_)))
     
    void SCIPnlhdlrSetProp (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINTEVAL((*inteval)), SCIP_DECL_NLHDLRREVERSEPROP((*reverseprop)))
     
    void SCIPnlhdlrSetSepa (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRINITSEPA((*initsepa)), SCIP_DECL_NLHDLRENFO((*enfo)), SCIP_DECL_NLHDLRESTIMATE((*estimate)), SCIP_DECL_NLHDLREXITSEPA((*exitsepa)))
     
    void SCIPnlhdlrSetSollinearize (SCIP_NLHDLR *nlhdlr, SCIP_DECL_NLHDLRSOLLINEARIZE((*sollinearize)))
     
    const char * SCIPnlhdlrGetName (SCIP_NLHDLR *nlhdlr)
     
    const char * SCIPnlhdlrGetDesc (SCIP_NLHDLR *nlhdlr)
     
    int SCIPnlhdlrGetDetectPriority (SCIP_NLHDLR *nlhdlr)
     
    int SCIPnlhdlrGetEnfoPriority (SCIP_NLHDLR *nlhdlr)
     
    SCIP_Bool SCIPnlhdlrIsEnabled (SCIP_NLHDLR *nlhdlr)
     
    SCIP_NLHDLRDATASCIPnlhdlrGetData (SCIP_NLHDLR *nlhdlr)
     
    SCIP_Bool SCIPnlhdlrHasIntEval (SCIP_NLHDLR *nlhdlr)
     
    SCIP_Bool SCIPnlhdlrHasReverseProp (SCIP_NLHDLR *nlhdlr)
     
    SCIP_Bool SCIPnlhdlrHasInitSepa (SCIP_NLHDLR *nlhdlr)
     
    SCIP_Bool SCIPnlhdlrHasExitSepa (SCIP_NLHDLR *nlhdlr)
     
    SCIP_Bool SCIPnlhdlrHasEnfo (SCIP_NLHDLR *nlhdlr)
     
    SCIP_Bool SCIPnlhdlrHasEstimate (SCIP_NLHDLR *nlhdlr)
     
    SCIP_Bool SCIPnlhdlrHasSollinearize (SCIP_NLHDLR *nlhdlr)
     
     SCIP_DECL_SORTPTRCOMP (SCIPnlhdlrComp)
     
    SCIP_RETCODE SCIPnlhdlrCreate (SCIP *scip, SCIP_NLHDLR **nlhdlr, const char *name, const char *desc, int detectpriority, int enfopriority, SCIP_DECL_NLHDLRDETECT((*detect)), SCIP_DECL_NLHDLREVALAUX((*evalaux)), SCIP_NLHDLRDATA *nlhdlrdata)
     
    SCIP_RETCODE SCIPnlhdlrFree (SCIP *scip, SCIP_NLHDLR **nlhdlr)
     
     SCIP_DECL_NLHDLRCOPYHDLR (SCIPnlhdlrCopyhdlr)
     
     SCIP_DECL_NLHDLRFREEEXPRDATA (SCIPnlhdlrFreeexprdata)
     
     SCIP_DECL_NLHDLRINIT (SCIPnlhdlrInit)
     
     SCIP_DECL_NLHDLREXIT (SCIPnlhdlrExit)
     
     SCIP_DECL_NLHDLRDETECT (SCIPnlhdlrDetect)
     
     SCIP_DECL_NLHDLREVALAUX (SCIPnlhdlrEvalaux)
     
     SCIP_DECL_NLHDLRINTEVAL (SCIPnlhdlrInteval)
     
     SCIP_DECL_NLHDLRREVERSEPROP (SCIPnlhdlrReverseprop)
     
     SCIP_DECL_NLHDLRINITSEPA (SCIPnlhdlrInitsepa)
     
     SCIP_DECL_NLHDLREXITSEPA (SCIPnlhdlrExitsepa)
     
     SCIP_DECL_NLHDLRENFO (SCIPnlhdlrEnfo)
     
     SCIP_DECL_NLHDLRESTIMATE (SCIPnlhdlrEstimate)
     
     SCIP_DECL_NLHDLRSOLLINEARIZE (SCIPnlhdlrSollinearize)
     
    void SCIPnlhdlrResetNDetectionslast (SCIP_NLHDLR *nlhdlr)
     
    void SCIPnlhdlrIncrementNCutoffs (SCIP_NLHDLR *nlhdlr)
     
    void SCIPnlhdlrIncrementNSeparated (SCIP_NLHDLR *nlhdlr)
     
    void SCIPnlhdlrPrintStatistics (SCIP *scip, SCIP_NLHDLR **nlhdlrs, int nnlhdlrs, FILE *file)
     
    SCIP_RETCODE SCIPnlhdlrCollectStatistics (SCIP *scip, SCIP_NLHDLR **nlhdlrs, int nnlhdlrs, SCIP_DATATREE *datatree)
     

    Function Documentation

    ◆ SCIPnlhdlrCreate()

    SCIP_RETCODE SCIPnlhdlrCreate ( SCIP scip,
    SCIP_NLHDLR **  nlhdlr,
    const char *  name,
    const char *  desc,
    int  detectpriority,
    int  enfopriority,
    SCIP_DECL_NLHDLRDETECT((*detect))  ,
    SCIP_DECL_NLHDLREVALAUX((*evalaux))  ,
    SCIP_NLHDLRDATA nlhdlrdata 
    )

    creates a nonlinear handler

    Parameters
    scipSCIP data structure
    nlhdlrbuffer to store pointer to created nonlinear handler
    namename of nonlinear handler (must not be NULL)
    descdescription of nonlinear handler (can be NULL)
    detectprioritydetection priority of nonlinear handler
    enfopriorityenforcement priority of nonlinear handler
    nlhdlrdatadata of nonlinear handler (can be NULL)

    Definition at line 354 of file nlhdlr.c.

    References FALSE, NULL, paramname, SCIP_CALL, SCIP_CALL_FINALLY, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddBoolParam(), SCIPallocClearBlockMemory, SCIPcreateClock(), SCIPduplicateMemoryArray, SCIPfreeMemoryArray, SCIPsnprintf(), and TRUE.

    Referenced by SCIPincludeNlhdlrNonlinear().

    ◆ SCIPnlhdlrFree()

    SCIP_RETCODE SCIPnlhdlrFree ( SCIP scip,
    SCIP_NLHDLR **  nlhdlr 
    )

    frees a nonlinear handler

    Parameters
    scipSCIP data structure
    nlhdlrpointer to nonlinear handler to be freed

    Definition at line 402 of file nlhdlr.c.

    References SCIP_Nlhdlr::data, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPfreeClock(), SCIPfreeMemory, and SCIPfreeMemoryNull.

    Referenced by SCIP_DECL_CONSFREE().

    ◆ SCIP_DECL_NLHDLRCOPYHDLR()

    SCIP_DECL_NLHDLRCOPYHDLR ( SCIPnlhdlrCopyhdlr  )

    call the handler copy callback of a nonlinear handler

    Definition at line 430 of file nlhdlr.c.

    References NULL, SCIP_CALL, and SCIP_OKAY.

    ◆ SCIP_DECL_NLHDLRFREEEXPRDATA()

    SCIP_DECL_NLHDLRFREEEXPRDATA ( SCIPnlhdlrFreeexprdata  )

    call the free expression specific data callback of a nonlinear handler

    Definition at line 442 of file nlhdlr.c.

    References NULL, SCIP_CALL, and SCIP_OKAY.

    ◆ SCIP_DECL_NLHDLRINIT()

    ◆ SCIP_DECL_NLHDLREXIT()

    SCIP_DECL_NLHDLREXIT ( SCIPnlhdlrExit  )

    call the deinitialization callback of a nonlinear handler

    Definition at line 486 of file nlhdlr.c.

    References NULL, SCIP_CALL, and SCIP_OKAY.

    ◆ SCIP_DECL_NLHDLRDETECT()

    SCIP_DECL_NLHDLRDETECT ( SCIPnlhdlrDetect  )

    call the detect callback of a nonlinear handler

    Definition at line 499 of file nlhdlr.c.

    References SCIP_Nlhdlr::detecttime, SCIP_Nlhdlr::ndetections, SCIP_Nlhdlr::ndetectionslast, NULL, SCIP_CALL, SCIP_NLHDLR_METHOD_NONE, SCIP_OKAY, SCIPstartClock(), and SCIPstopClock().

    ◆ SCIP_DECL_NLHDLREVALAUX()

    SCIP_DECL_NLHDLREVALAUX ( SCIPnlhdlrEvalaux  )

    call the auxiliary evaluation callback of a nonlinear handler

    Definition at line 521 of file nlhdlr.c.

    References NULL, SCIP_CALL, and SCIP_OKAY.

    ◆ SCIP_DECL_NLHDLRINTEVAL()

    SCIP_DECL_NLHDLRINTEVAL ( SCIPnlhdlrInteval  )

    call the interval evaluation callback of a nonlinear handler

    Definition at line 532 of file nlhdlr.c.

    References SCIP_Nlhdlr::intevaltime, SCIP_Nlhdlr::nintevalcalls, NULL, SCIP_CALL, SCIP_OKAY, SCIPstartClock(), and SCIPstopClock().

    ◆ SCIP_DECL_NLHDLRREVERSEPROP()

    SCIP_DECL_NLHDLRREVERSEPROP ( SCIPnlhdlrReverseprop  )

    call the reverse propagation callback of a nonlinear handler

    Definition at line 551 of file nlhdlr.c.

    References FALSE, SCIP_Nlhdlr::ncutoffs, SCIP_Nlhdlr::ndomreds, SCIP_Nlhdlr::npropcalls, NULL, SCIP_Nlhdlr::proptime, SCIP_CALL, SCIP_OKAY, SCIPstartClock(), and SCIPstopClock().

    ◆ SCIP_DECL_NLHDLRINITSEPA()

    SCIP_DECL_NLHDLRINITSEPA ( SCIPnlhdlrInitsepa  )

    call the separation initialization callback of a nonlinear handler

    Definition at line 581 of file nlhdlr.c.

    References SCIP_Nlhdlr::enfotime, FALSE, SCIP_Nlhdlr::ncutoffs, SCIP_Nlhdlr::nenfocalls, NULL, SCIP_CALL, SCIP_OKAY, SCIPstartClock(), and SCIPstopClock().

    ◆ SCIP_DECL_NLHDLREXITSEPA()

    SCIP_DECL_NLHDLREXITSEPA ( SCIPnlhdlrExitsepa  )

    call the separation deinitialization callback of a nonlinear handler

    Definition at line 606 of file nlhdlr.c.

    References SCIP_Nlhdlr::enfotime, NULL, SCIP_CALL, SCIP_OKAY, SCIPstartClock(), and SCIPstopClock().

    ◆ SCIP_DECL_NLHDLRENFO()

    ◆ SCIP_DECL_NLHDLRESTIMATE()

    SCIP_DECL_NLHDLRESTIMATE ( SCIPnlhdlrEstimate  )

    call the estimator callback of a nonlinear handler

    Definition at line 676 of file nlhdlr.c.

    References SCIP_Nlhdlr::enfotime, FALSE, SCIP_Nlhdlr::nenfocalls, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPstartClock(), and SCIPstopClock().

    ◆ SCIP_DECL_NLHDLRSOLLINEARIZE()

    SCIP_DECL_NLHDLRSOLLINEARIZE ( SCIPnlhdlrSollinearize  )

    call the solution notification callback of a nonlinear handler

    Definition at line 712 of file nlhdlr.c.

    References NULL, SCIP_CALL, and SCIP_OKAY.

    ◆ SCIPnlhdlrResetNDetectionslast()

    void SCIPnlhdlrResetNDetectionslast ( SCIP_NLHDLR nlhdlr)

    reset number of detections counter for last round

    Parameters
    nlhdlrnonlinear handler

    Definition at line 726 of file nlhdlr.c.

    References SCIP_Nlhdlr::ndetectionslast, and NULL.

    ◆ SCIPnlhdlrIncrementNCutoffs()

    void SCIPnlhdlrIncrementNCutoffs ( SCIP_NLHDLR nlhdlr)

    increments number of cutoffs in statistics

    Parameters
    nlhdlrnonlinear handler

    Definition at line 735 of file nlhdlr.c.

    References SCIP_Nlhdlr::ncutoffs, and NULL.

    ◆ SCIPnlhdlrIncrementNSeparated()

    void SCIPnlhdlrIncrementNSeparated ( SCIP_NLHDLR nlhdlr)

    increments number of separations in statistics

    Parameters
    nlhdlrnonlinear handler

    Definition at line 744 of file nlhdlr.c.

    References SCIP_Nlhdlr::nseparated, and NULL.

    ◆ SCIPnlhdlrPrintStatistics()

    void SCIPnlhdlrPrintStatistics ( SCIP scip,
    SCIP_NLHDLR **  nlhdlrs,
    int  nnlhdlrs,
    FILE *  file 
    )

    print statistics for nonlinear handlers

    Parameters
    scipSCIP data structure
    nlhdlrsnonlinear handlers
    nnlhdlrsnumber of nonlinear handlers
    filefile handle, or NULL for standard out

    Definition at line 753 of file nlhdlr.c.

    References SCIPgetClockTime(), and SCIPinfoMessage().

    Referenced by SCIP_DECL_TABLEOUTPUT().

    ◆ SCIPnlhdlrCollectStatistics()

    SCIP_RETCODE SCIPnlhdlrCollectStatistics ( SCIP scip,
    SCIP_NLHDLR **  nlhdlrs,
    int  nnlhdlrs,
    SCIP_DATATREE datatree 
    )

    collect statistics for nonlinear handlers

    Parameters
    scipSCIP data structure
    nlhdlrsnonlinear handlers
    nnlhdlrsnumber of nonlinear handlers
    datatreedatatree where to add statistics

    Definition at line 797 of file nlhdlr.c.

    References SCIP_CALL, SCIP_OKAY, SCIPcreateDatatreeInTree(), SCIPgetClockTime(), SCIPinsertDatatreeLong(), SCIPinsertDatatreeReal(), and SCIPinsertDatatreeString().

    Referenced by SCIP_DECL_TABLECOLLECT().