Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    wrapper for rational number arithmetic

    Author
    Leon Eifler
    Dominik Kamp

    Definition in file rational.cpp.

    #include "blockmemshell/memory.h"
    #include "scip/rational.h"
    #include "scip/rationalgmp.h"
    #include "scip/struct_rational.h"
    #include "scip/multiprecision.hpp"
    #include "scip/type_message.h"
    #include "scip/type_retcode.h"
    #include "scip/type_rational.h"
    #include "scip/pub_message.h"
    #include "scip/pub_misc.h"
    #include "scip/intervalarith.h"
    #include "scip/set.h"
    #include <iostream>
    #include <time.h>
    #include <stdlib.h>
    #include <numeric>
    #include <string.h>
    #include <algorithm>

    Go to the source code of this file.

    Functions

    std::ostream & operator<< (std::ostream &os, SCIP_RATIONAL const &r)
     
    SCIP_RETCODE SCIPrationalCreate (SCIP_RATIONAL **rational)
     
    SCIP_RETCODE SCIPrationalCreateBlock (BMS_BLKMEM *blkmem, SCIP_RATIONAL **rational)
     
    SCIP_RETCODE SCIPrationalCreateBuffer (BMS_BUFMEM *bufmem, SCIP_RATIONAL **rational)
     
    SCIP_RETCODE SCIPrationalCopy (SCIP_RATIONAL **result, SCIP_RATIONAL *src)
     
    SCIP_RETCODE SCIPrationalCopyBlock (BMS_BLKMEM *mem, SCIP_RATIONAL **result, SCIP_RATIONAL *src)
     
    SCIP_RETCODE SCIPrationalCopyBuffer (BMS_BUFMEM *bufmem, SCIP_RATIONAL **result, SCIP_RATIONAL *src)
     
    SCIP_RETCODE SCIPrationalCreateArray (SCIP_RATIONAL ***rational, int size)
     
    SCIP_RETCODE SCIPrationalCreateBlockArray (BMS_BLKMEM *mem, SCIP_RATIONAL ***rational, int size)
     
    SCIP_RETCODE SCIPrationalCreateBufferArray (BMS_BUFMEM *mem, SCIP_RATIONAL ***rational, int size)
     
    SCIP_RETCODE SCIPrationalCopyArray (SCIP_RATIONAL ***target, SCIP_RATIONAL **src, int len)
     
    SCIP_RETCODE SCIPrationalCopyBlockArray (BMS_BLKMEM *mem, SCIP_RATIONAL ***target, SCIP_RATIONAL **src, int len)
     
    SCIP_RETCODE SCIPrationalCopyBufferArray (BMS_BUFMEM *mem, SCIP_RATIONAL ***result, SCIP_RATIONAL **src, int len)
     
    SCIP_RETCODE SCIPrationalReallocArray (SCIP_RATIONAL ***result, int oldlen, int newlen)
     
    SCIP_RETCODE SCIPrationalReallocBufferArray (BMS_BUFMEM *mem, SCIP_RATIONAL ***result, int oldlen, int newlen)
     
    SCIP_RETCODE SCIPrationalReallocBlockArray (BMS_BLKMEM *mem, SCIP_RATIONAL ***result, int oldlen, int newlen)
     
    void SCIPrationalFree (SCIP_RATIONAL **rational)
     
    void SCIPrationalFreeBlock (BMS_BLKMEM *mem, SCIP_RATIONAL **rational)
     
    void SCIPrationalFreeBuffer (BMS_BUFMEM *bufmem, SCIP_RATIONAL **rational)
     
    void SCIPrationalFreeArray (SCIP_RATIONAL ***ratarray, int size)
     
    void SCIPrationalFreeBlockArray (BMS_BLKMEM *mem, SCIP_RATIONAL ***ratblockarray, int size)
     
    void SCIPrationalFreeBufferArray (BMS_BUFMEM *mem, SCIP_RATIONAL ***ratbufarray, int size)
     
    void SCIPrationalCanonicalize (SCIP_RATIONAL *rational)
     
    void SCIPrationalCheckInfByValue (SCIP_RATIONAL *rational)
     
    void SCIPrationalSetRational (SCIP_RATIONAL *res, SCIP_RATIONAL *src)
     
    void SCIPrationalSetFraction (SCIP_RATIONAL *res, SCIP_Longint nom, SCIP_Longint denom)
     
    void SCIPrationalSetReal (SCIP_RATIONAL *res, SCIP_Real real)
     
    void SCIPrationalSetInfinity (SCIP_RATIONAL *res)
     
    void SCIPrationalSetNegInfinity (SCIP_RATIONAL *res)
     
    void SCIPrationalResetFloatingPointRepresentable (SCIP_RATIONAL *rat)
     
    SCIP_Bool SCIPrationalIsString (const char *desc)
     
    void SCIPrationalSetString (SCIP_RATIONAL *res, const char *desc)
     
    SCIP_RETCODE SCIPrationalCreateString (BMS_BLKMEM *mem, SCIP_RATIONAL **rational, const char *desc)
     
    SCIP_Bool SCIPstrToRationalValue (char *desc, SCIP_RATIONAL *value, char **endptr)
     
    void SCIPrationalAdd (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_RATIONAL *op2)
     
    void SCIPrationalAddReal (SCIP_RATIONAL *res, SCIP_RATIONAL *rat, SCIP_Real real)
     
    void SCIPrationalDiff (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_RATIONAL *op2)
     
    void SCIPrationalDiffReal (SCIP_RATIONAL *res, SCIP_RATIONAL *rat, SCIP_Real real)
     
    void SCIPrationalRelDiff (SCIP_RATIONAL *res, SCIP_RATIONAL *val1, SCIP_RATIONAL *val2)
     
    void SCIPrationalMult (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_RATIONAL *op2)
     
    void SCIPrationalMultReal (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_Real op2)
     
    void SCIPrationalDiv (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_RATIONAL *op2)
     
    void SCIPrationalDivReal (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_Real op2)
     
    void SCIPrationalAddProd (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_RATIONAL *op2)
     
    void SCIPrationalAddProdReal (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_Real op2)
     
    void SCIPrationalDiffProd (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_RATIONAL *op2)
     
    void SCIPrationalDiffProdReal (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_Real op2)
     
    void SCIPrationalNegate (SCIP_RATIONAL *res, SCIP_RATIONAL *op)
     
    void SCIPrationalAbs (SCIP_RATIONAL *res, SCIP_RATIONAL *op)
     
    void SCIPrationalInvert (SCIP_RATIONAL *res, SCIP_RATIONAL *op)
     
    void SCIPrationalMin (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_RATIONAL *op2)
     
    void SCIPrationalMax (SCIP_RATIONAL *res, SCIP_RATIONAL *op1, SCIP_RATIONAL *op2)
     
    SCIP_Bool SCIPrationalIsEQ (SCIP_RATIONAL *rat1, SCIP_RATIONAL *rat2)
     
    SCIP_Bool SCIPrationalIsAbsEQ (SCIP_RATIONAL *rat1, SCIP_RATIONAL *rat2)
     
    SCIP_Bool SCIPrationalIsEQReal (SCIP_RATIONAL *rat, SCIP_Real real)
     
    SCIP_Bool SCIPrationalIsApproxEQReal (SCIP_SET *set, SCIP_RATIONAL *rat, SCIP_Real real, SCIP_ROUNDMODE_RAT roundmode)
     
    SCIP_Bool SCIPrationalIsGT (SCIP_RATIONAL *rat1, SCIP_RATIONAL *rat2)
     
    SCIP_Bool SCIPrationalIsLT (SCIP_RATIONAL *rat1, SCIP_RATIONAL *rat2)
     
    SCIP_Bool SCIPrationalIsGE (SCIP_RATIONAL *rat1, SCIP_RATIONAL *rat2)
     
    SCIP_Bool SCIPrationalIsLE (SCIP_RATIONAL *rat1, SCIP_RATIONAL *rat2)
     
    SCIP_Bool SCIPrationalIsAbsGT (SCIP_RATIONAL *rat1, SCIP_RATIONAL *rat2)
     
    SCIP_Bool SCIPrationalIsGTReal (SCIP_RATIONAL *rat, SCIP_Real real)
     
    SCIP_Bool SCIPrationalIsLTReal (SCIP_RATIONAL *rat, SCIP_Real real)
     
    SCIP_Bool SCIPrationalIsGEReal (SCIP_RATIONAL *rat, SCIP_Real real)
     
    SCIP_Bool SCIPrationalIsLEReal (SCIP_RATIONAL *rat, SCIP_Real real)
     
    SCIP_Bool SCIPrationalIsZero (SCIP_RATIONAL *rational)
     
    SCIP_Bool SCIPrationalIsPositive (SCIP_RATIONAL *rational)
     
    SCIP_Bool SCIPrationalIsNegative (SCIP_RATIONAL *rational)
     
    SCIP_Bool SCIPrationalIsInfinity (SCIP_RATIONAL *rational)
     
    SCIP_Bool SCIPrationalIsNegInfinity (SCIP_RATIONAL *rational)
     
    SCIP_Bool SCIPrationalIsAbsInfinity (SCIP_RATIONAL *rational)
     
    SCIP_Bool SCIPrationalIsIntegral (SCIP_RATIONAL *rational)
     
    SCIP_Bool SCIPrationalIsFpRepresentable (SCIP_RATIONAL *rational)
     
    int SCIPrationalToString (SCIP_RATIONAL *rational, char *str, int strlen)
     
    int SCIPrationalStrLen (SCIP_RATIONAL *rational)
     
    void SCIPrationalMessage (SCIP_MESSAGEHDLR *msg, FILE *file, SCIP_RATIONAL *rational)
     
    void SCIPrationalPrintVerbInfo (SCIP_MESSAGEHDLR *msg, SCIP_VERBLEVEL verblevel, SCIP_VERBLEVEL msgverblevel, SCIP_RATIONAL *rational)
     
    void SCIPrationalPrint (SCIP_RATIONAL *rational)
     
    static void SCIPrationalVPrintf (const char *formatstr, va_list ap)
     
    void SCIPrationalPrintf (const char *formatstr,...)
     
    void SCIPrationalPrintDebugMessage (const char *sourcefile, int sourceline, const char *formatstr,...)
     
    SCIP_Longint SCIPrationalNumerator (SCIP_RATIONAL *rational)
     
    SCIP_Longint SCIPrationalDenominator (SCIP_RATIONAL *rational)
     
    SCIP_Bool SCIPrationalDenominatorIsLE (SCIP_RATIONAL *rational, SCIP_Longint val)
     
    int SCIPrationalGetSign (const SCIP_RATIONAL *rational)
     
    void SCIPrationalGetFrac (SCIP_RATIONAL *res, SCIP_RATIONAL *src)
     
    SCIP_Real SCIPrationalGetReal (SCIP_RATIONAL *rational)
     
    SCIP_Real SCIPrationalRoundReal (SCIP_RATIONAL *rational, SCIP_ROUNDMODE_RAT roundmode)
     
    void SCIPrationalRoundInteger (SCIP_RATIONAL *res, SCIP_RATIONAL *src, SCIP_ROUNDMODE_RAT roundmode)
     
    SCIP_Bool SCIPrationalRoundLong (SCIP_Longint *res, SCIP_RATIONAL *src, SCIP_ROUNDMODE_RAT roundmode)
     
    void SCIPrationalComputeApproximation (SCIP_RATIONAL *res, SCIP_RATIONAL *src, SCIP_Longint maxdenom, int forcegreater)
     
    SCIP_RETCODE SCIPrationalarrayCreate (SCIP_RATIONALARRAY **rationalarray, BMS_BLKMEM *blkmem)
     
    SCIP_RETCODE SCIPrationalarrayResize (SCIP_RATIONALARRAY *rationalarray, int newsize)
     
    SCIP_RETCODE SCIPrationalarrayCopy (SCIP_RATIONALARRAY **rationalarray, BMS_BLKMEM *blkmem, SCIP_RATIONALARRAY *sourcerationalarray)
     
    SCIP_RETCODE SCIPrationalarrayFree (SCIP_RATIONALARRAY **rationalarray, BMS_BLKMEM *blkmem)
     
    void SCIPrationalarrayGetVal (SCIP_RATIONALARRAY *rationalarray, int idx, SCIP_RATIONAL *result)
     
    SCIP_RETCODE SCIPrationalarraySetVal (SCIP_RATIONALARRAY *rationalarray, int idx, SCIP_RATIONAL *val)
     
    SCIP_RETCODE SCIPrationalarrayIncVal (SCIP_RATIONALARRAY *rationalarray, int idx, SCIP_RATIONAL *incval)
     
    SCIP_RETCODE SCIPrationalarrayPrint (SCIP_RATIONALARRAY *rationalarray)
     
    int SCIPrationalarrayGetMinIdx (SCIP_RATIONALARRAY *rationalarray)
     
    int SCIPrationalarrayGetMaxIdx (SCIP_RATIONALARRAY *rationalarray)
     
    void SCIPrationalChgInfinity (SCIP_Real inf)
     
    SCIP_Real SCIPrationalGetInfinity (void)
     

    Variables

    static SCIP_Real infinity = SCIP_DEFAULT_INFINITY
     

    Function Documentation

    ◆ operator<<()

    std::ostream & operator<< ( std::ostream &  os,
    SCIP_RATIONAL const &  r 
    )

    print SCIP_RATIONAL to output stream

    Parameters
    osoutput stream
    rrational to print

    Definition at line 68 of file rational.cpp.

    References r.

    ◆ SCIPrationalVPrintf()

    static void SCIPrationalVPrintf ( const char *  formatstr,
    va_list  ap 
    )
    static

    printf extension for rationals (not supporting all format options)

    Parameters
    formatstrformat string like in printf() function
    apvariable argument list

    Definition at line 1845 of file rational.cpp.

    References SCIP_Longint, SCIP_Real, SCIPrationalPrint(), and va_copy.

    Referenced by SCIPrationalPrintDebugMessage(), and SCIPrationalPrintf().

    Variable Documentation

    ◆ infinity