55#define READER_NAME "ppmreader"
56#define READER_DESC "file writer for portable pixmap file format (PPM), open with common graphic viewer programs (e.g. xview)"
57#define READER_EXTENSION "ppm"
62#define PPM_MAX_LINELEN 71
63#define DEFAULT_PPM_RGB_LIMIT 160
64#define DEFAULT_PPM_COEF_LIMIT 3
65#define DEFAULT_PPM_RGB_RELATIVE TRUE
66#define DEFAULT_PPM_RGB_ASCII TRUE
71 SCIP_Bool rgb_relative;
104 SCIP_Bool transformed
120 if( requiredsize > *
nvars )
131 for( v = 0; v < *
nvars; ++v )
150 linebuffer[0] =
'\0';
169 linebuffer[(*linecnt)] =
'\0';
171 if(readerdata->rgb_ascii)
187 const char* extension
196 endLine(
scip, file, readerdata, linebuffer, linecnt);
199 (void) strncat(linebuffer, extension,
PPM_MAX_LINELEN - (
unsigned int)(*linecnt) - 1);
200 (*linecnt) += (int) strlen(extension);
220 assert(readerdata->rgb_limit >= 0);
225 if( !(readerdata->rgb_relative) )
228 (*blue) = readerdata->rgb_limit - (int) (
unsigned short) (coef/scale * readerdata->rgb_limit);
236 if( coeflog >= readerdata->coef_limit )
243 (*blue) = readerdata->rgb_limit - (int) (
unsigned short) (readerdata->rgb_limit * coeflog/readerdata->coef_limit);
250 coeflog = -1.0*coeflog;
251 if( coeflog >= readerdata->coef_limit )
258 (*red) = (readerdata->rgb_limit) - (
int) (
unsigned short) ((readerdata->rgb_limit)*coeflog/(readerdata->coef_limit));
295 const unsigned char max = (
unsigned char)255;
310 for( v = 0; v <
nvars; ++v )
315 assert(maxvarindex < ntotalvars);
318 for(v = 0; v <
nvars; ++v)
320 actvarindex = maxvarindex;
321 for(j = 0; j <
nvars; ++j)
329 varindex = actvarindex;
332 for( ;
i < varindex; ++
i )
334 if(readerdata->rgb_ascii)
337 appendLine(
scip, file, readerdata, linebuffer, &linecnt,
" 255 255 255 ");
341 if( readerdata->rgb_ascii )
343 if( red == 35 || red == 0 )
345 if( green==35 || green == 0 )
347 if( blue==35 || blue == 0 )
359 for( ;
i < ntotalvars; ++
i )
361 if(readerdata->rgb_ascii)
364 appendLine(
scip, file, readerdata, linebuffer, &linecnt,
" 255 255 255 ");
367 endLine(
scip, file, readerdata, linebuffer, &linecnt);
381 SCIP_Bool transformed,
388 SCIP_Real* activevals;
390 SCIP_Real activeconstant = 0.0;
408 for( v = 0; v < nactivevars; ++v )
415 if( ! readerdata->rgb_relative )
419 for(v = 0; v < nactivevars; ++v)
421 if(
REALABS(activevals[v]) > *maxcoef)
422 *maxcoef =
REALABS(activevals[v]);
429 printRow(
scip, file, readerdata, activevars, activevals, nactivevars, ncompletevars, *maxcoef);
435 printRow(
scip, file, readerdata, activevars, activevals, nactivevars, ncompletevars, *maxcoef);
522 "reading/ppmreader/rgbrelativ",
"should the coloring values be relativ or absolute",
525 "reading/ppmreader/rgbascii",
"should the output format be binary(P6) (otherwise plain(P3) format)",
528 "reading/ppmreader/coefficientlimit",
529 "splitting coefficients in this number of intervals",
532 "reading/ppmreader/rgblimit",
533 "maximal color value",
546 SCIP_Bool transformed,
562 const char* conshdlrname;
569 SCIP_Real maxcoef = 0;
570 SCIP_Bool printbool =
FALSE;
577 if(readerdata->rgb_ascii)
587 if( ! readerdata->rgb_relative )
590 for(
i = 0;
i < i_max; ++
i)
598 for(
c = 0;
c < nconss; ++
c)
612 if( strcmp(conshdlrname,
"linear") == 0 )
621 nconsvars,
nvars, transformed, &maxcoef, printbool) );
624 else if( strcmp(conshdlrname,
"setppc") == 0 )
633 nconsvars,
nvars, transformed, &maxcoef, printbool) );
636 else if( strcmp(conshdlrname,
"logicor") == 0 )
645 nconsvars,
nvars, transformed, &maxcoef, printbool) );
648 else if( strcmp(conshdlrname,
"knapsack") == 0 )
650 SCIP_Longint* weights;
659 for( v = 0; v < nconsvars; ++v )
660 consvals[v] = (SCIP_Real)weights[v];
669 else if( strcmp(conshdlrname,
"varbound") == 0 )
Constraint handler for knapsack constraints of the form , x binary and .
Constraint handler for linear constraints in their most general form, .
Constraint handler for logicor constraints (equivalent to set covering, but algorithms are suited fo...
Constraint handler for the set partitioning / packing / covering constraints .
Constraint handler for variable bound constraints .
int SCIPgetNVarsKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_Real SCIPgetVbdcoefVarbound(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsLogicor(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsLinear(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_Real * SCIPgetValsLinear(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR * SCIPgetVbdvarVarbound(SCIP *scip, SCIP_CONS *cons)
int SCIPgetNVarsSetppc(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsSetppc(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR * SCIPgetVarVarbound(SCIP *scip, SCIP_CONS *cons)
SCIP_Longint * SCIPgetWeightsKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsLogicor(SCIP *scip, SCIP_CONS *cons)
SCIP_VAR ** SCIPgetVarsKnapsack(SCIP *scip, SCIP_CONS *cons)
SCIP_RETCODE SCIPwritePpm(SCIP *scip, FILE *file, const char *name, SCIP_READERDATA *readerdata, SCIP_Bool transformed, SCIP_VAR **vars, int nvars, SCIP_CONS **conss, int nconss, SCIP_RESULT *result)
SCIP_RETCODE SCIPincludeReaderPpm(SCIP *scip)
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
#define SCIPdebugMsgPrint
void SCIPwarningMessage(SCIP *scip, const char *formatstr,...)
SCIP_RETCODE SCIPaddIntParam(SCIP *scip, const char *name, const char *desc, int *valueptr, SCIP_Bool isadvanced, int defaultvalue, int minvalue, int maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPaddBoolParam(SCIP *scip, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
const char * SCIPconshdlrGetName(SCIP_CONSHDLR *conshdlr)
SCIP_CONSHDLR * SCIPconsGetHdlr(SCIP_CONS *cons)
SCIP_RETCODE SCIPprintCons(SCIP *scip, SCIP_CONS *cons, FILE *file)
SCIP_Bool SCIPconsIsTransformed(SCIP_CONS *cons)
SCIP_Bool SCIPconsIsEnabled(SCIP_CONS *cons)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPreallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPduplicateBufferArray(scip, ptr, source, num)
#define SCIPfreeBlockMemory(scip, ptr)
#define SCIPallocBlockMemory(scip, ptr)
SCIP_RETCODE SCIPsetReaderCopy(SCIP *scip, SCIP_READER *reader,)
SCIP_RETCODE SCIPincludeReaderBasic(SCIP *scip, SCIP_READER **readerptr, const char *name, const char *desc, const char *extension, SCIP_READERDATA *readerdata)
SCIP_READERDATA * SCIPreaderGetData(SCIP_READER *reader)
SCIP_RETCODE SCIPsetReaderWrite(SCIP *scip, SCIP_READER *reader,)
const char * SCIPreaderGetName(SCIP_READER *reader)
SCIP_RETCODE SCIPsetReaderFree(SCIP *scip, SCIP_READER *reader,)
SCIP_Real SCIPfloor(SCIP *scip, SCIP_Real val)
SCIP_RETCODE SCIPgetProbvarLinearSum(SCIP *scip, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, int varssize, SCIP_Real *constant, int *requiredsize, SCIP_Bool mergemultiples)
SCIP_RETCODE SCIPvarGetOrigvarSum(SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
int SCIPvarGetProbindex(SCIP_VAR *var)
int SCIPsnprintf(char *t, int len, const char *s,...)
assert(minobj< SCIPgetCutoffbound(scip))
static const SCIP_Real scalars[]
memory allocation routines
public methods for managing constraints
public methods for message output
public data structures and miscellaneous methods
public methods for input file readers
public methods for problem variables
#define DEFAULT_PPM_COEF_LIMIT
static void clearLine(char *linebuffer, int *linecnt)
static void endLine(SCIP *scip, FILE *file, SCIP_READERDATA *readerdata, char *linebuffer, int *linecnt)
static void initReaderdata(SCIP_READERDATA *readerdata)
static SCIP_RETCODE getActiveVariables(SCIP *scip, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, SCIP_Real *constant, SCIP_Bool transformed)
static void appendLine(SCIP *scip, FILE *file, SCIP_READERDATA *readerdata, char *linebuffer, int *linecnt, const char *extension)
#define DEFAULT_PPM_RGB_LIMIT
#define DEFAULT_PPM_RGB_ASCII
#define DEFAULT_PPM_RGB_RELATIVE
static void printRow(SCIP *scip, FILE *file, SCIP_READERDATA *readerdata, SCIP_VAR **vars, SCIP_Real *vals, int nvars, int ntotalvars, SCIP_Real maxcoef)
static void calcColorValue(SCIP *scip, SCIP_READERDATA *readerdata, SCIP_Real coef, int *red, int *green, int *blue, SCIP_Real scale)
static SCIP_RETCODE printLinearCons(SCIP *scip, FILE *file, SCIP_READERDATA *readerdata, SCIP_VAR **vars, SCIP_Real *vals, int nvars, int ncompletevars, SCIP_Bool transformed, SCIP_Real *maxcoef, SCIP_Bool printbool)
file writer for portable pixmap file format (PPM), open with common graphic viewer programs (e....
public methods for constraint handler plugins and constraints
public methods for memory management
public methods for message handling
public methods for numerical tolerances
public methods for SCIP parameter handling
public methods for reader plugins
public methods for SCIP variables
#define SCIP_DECL_READERWRITE(x)
struct SCIP_ReaderData SCIP_READERDATA
#define SCIP_DECL_READERCOPY(x)
#define SCIP_DECL_READERFREE(x)
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE