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