SCIP Doxygen Documentation
Loading...
Searching...
No Matches

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

static 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 )
static

print SCIP_RATIONAL to output stream

Parameters
osoutput stream
rrational to print

Definition at line 69 of file rational.cpp.

References r.

◆ SCIPrationalVPrintf()

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 1844 of file rational.cpp.

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

Referenced by SCIPrationalPrintDebugMessage(), and SCIPrationalPrintf().

Variable Documentation

◆ infinity

SCIP_Real infinity = SCIP_DEFAULT_INFINITY
static

Definition at line 87 of file rational.cpp.