42 #include "scip/scip.h"
47 #define PARAM_NAME "paramsvisu"
48 #define PARAM_DESC "parameters for visualization"
51 #define COLOR_WHITE "#FFFFFF"
52 #define COLOR_BLUE1 "#ACBCE9"
53 #define COLOR_BLUE2 "#718CDB"
54 #define COLOR_BLUE3 "#3C64DD"
55 #define COLOR_BLUE4 "#1340C7"
56 #define COLOR_BLUE5 "#1F377D"
57 #define COLOR_ORANGE1 "#FFD88F"
58 #define COLOR_ORANGE2 "#FFCB69"
59 #define COLOR_ORANGE3 "#FFB72D"
60 #define COLOR_BROWN1 "#B38208"
61 #define COLOR_BROWN2 "#886100"
62 #define COLOR_BROWN3 "#443000"
63 #define COLOR_BLACK "#000000"
66 #define DEFAULT_COLOR_MASTERVARS COLOR_BLUE4
67 #define DEFAULT_COLOR_MASTERCONSS COLOR_BLUE4
68 #define DEFAULT_COLOR_LINKING COLOR_ORANGE3
69 #define DEFAULT_COLOR_STAIRLINKING COLOR_BROWN2
70 #define DEFAULT_COLOR_BLOCK COLOR_BLUE2
71 #define DEFAULT_COLOR_OPEN COLOR_ORANGE1
72 #define DEFAULT_COLOR_NONZERO COLOR_BLACK
73 #define DEFAULT_COLOR_LINE COLOR_BLACK
76 #define GREY_COLOR_MASTERVARS "#323232"
77 #define GREY_COLOR_MASTERCONS "#666666"
78 #define GREY_COLOR_LINKING "#4C4C4C"
79 #define GREY_COLOR_STAIRLINKING "#191919"
80 #define GREY_COLOR_BLOCK "#d3d3d3"
81 #define GREY_COLOR_OPEN "#7F7F7F"
82 #define GREY_COLOR_NONZERO COLOR_BLACK
83 #define GREY_COLOR_LINE COLOR_BLACK
86 #define DEFAULT_VISU_DRAFTMODE FALSE
87 #define DEFAULT_VISU_COLORSCHEME COLORSCHEME_DEFAULT
88 #define DEFAULT_VISU_RADIUS 2
89 #define DEFAULT_VISU_USEGP FALSE
94 #if defined(__linux__)
95 #define DEFAULT_PDFREADER "xdg-open"
96 #elif defined(__APPLE__)
97 #define DEFAULT_PDFREADER "open"
99 #define DEFAULT_PDFREADER "start"
101 #define DEFAULT_PDFREADER "evince"
105 #define DEFAULT_REPORT_MAXNDECOMPS 20
106 #define DEFAULT_REPORT_SHOWTYPE 0
108 #define DEFAULT_REPORT_SHOWTITLEPAGE TRUE
109 #define DEFAULT_REPORT_SHOWTOC TRUE
110 #define DEFAULT_REPORT_SHOWSTATISTICS TRUE
163 assert(paramdata != NULL);
180 assert(paramdata != NULL);
195 assert(paramdata != NULL);
211 assert(paramdata != NULL);
227 assert(paramdata != NULL);
254 assert(paramdata != NULL);
281 assert(paramdata != NULL);
308 assert(paramdata != NULL);
335 assert(paramdata != NULL);
362 assert(paramdata != NULL);
389 assert(paramdata != NULL);
416 assert(paramdata != NULL);
442 assert(paramdata != NULL);
457 assert(paramdata != NULL);
472 assert(paramdata != NULL);
474 SCIPsnprintf(paramdata->
mancolorlinking, SCIP_MAXSTRLEN,
"%s", newcolor);
487 assert(paramdata != NULL);
502 assert(paramdata != NULL);
504 SCIPsnprintf(paramdata->
mancolorblock, SCIP_MAXSTRLEN,
"%s", newcolor);
517 assert(paramdata != NULL);
519 SCIPsnprintf(paramdata->
mancoloropen, SCIP_MAXSTRLEN,
"%s", newcolor);
531 assert(paramdata != NULL);
533 SCIPsnprintf(paramdata->
mancolornonzero, SCIP_MAXSTRLEN,
"%s", newcolor);
546 assert(paramdata != NULL);
547 SCIPsnprintf(paramdata->
mancolorline, SCIP_MAXSTRLEN,
"%s", newcolor);
566 assert(paramdata != NULL);
578 if(maxindx > maxindy)
584 radius = ( (float) paramdata->
visuradius / (
float) maxind) * scalingfactor;
600 assert(paramdata != NULL);
617 assert(paramdata != NULL);
634 assert(paramdata != NULL);
651 assert(paramdata != NULL);
668 assert(paramdata != NULL);
685 assert(paramdata != NULL);
692 #define paramInitVisu NULL
700 assert(scip != NULL);
701 assert(paramdata != NULL);
712 SCIPfreeMemory(scip, ¶mdata);
721 assert(*paramdata == NULL);
723 SCIP_CALL( SCIPallocMemory(scip, &(*paramdata)) );
726 (*paramdata)->pdfreader = NULL;
727 (*paramdata)->mancolormastervars = NULL;
728 (*paramdata)->mancolormasterconss = NULL;
729 (*paramdata)->mancolorlinking = NULL;
730 (*paramdata)->mancolorstairlinking = NULL;
731 (*paramdata)->mancolorblock = NULL;
732 (*paramdata)->mancoloropen = NULL;
733 (*paramdata)->mancolornonzero = NULL;
734 (*paramdata)->mancolorline = NULL;
737 SCIP_CALL( SCIPallocMemoryArray(scip, &((*paramdata)->greycolormastervars), SCIP_MAXSTRLEN) );
739 SCIP_CALL( SCIPallocMemoryArray(scip, &((*paramdata)->greycolormasterconss), SCIP_MAXSTRLEN) );
741 SCIP_CALL( SCIPallocMemoryArray(scip, &((*paramdata)->greycolorlinking), SCIP_MAXSTRLEN) );
742 SCIPsnprintf((*paramdata)->greycolorlinking, SCIP_MAXSTRLEN,
"%s",
GREY_COLOR_LINKING);
743 SCIP_CALL( SCIPallocMemoryArray(scip, &((*paramdata)->greycolorstairlinking), SCIP_MAXSTRLEN) );
745 SCIP_CALL( SCIPallocMemoryArray(scip, &((*paramdata)->greycolorblock), SCIP_MAXSTRLEN) );
746 SCIPsnprintf((*paramdata)->greycolorblock, SCIP_MAXSTRLEN,
"%s",
GREY_COLOR_BLOCK);
747 SCIP_CALL( SCIPallocMemoryArray(scip, &((*paramdata)->greycoloropen), SCIP_MAXSTRLEN) );
748 SCIPsnprintf((*paramdata)->greycoloropen, SCIP_MAXSTRLEN,
"%s",
GREY_COLOR_OPEN);
749 SCIP_CALL( SCIPallocMemoryArray(scip, &((*paramdata)->greycolornonzero), SCIP_MAXSTRLEN) );
750 SCIPsnprintf((*paramdata)->greycolornonzero, SCIP_MAXSTRLEN,
"%s",
GREY_COLOR_NONZERO);
751 SCIP_CALL( SCIPallocMemoryArray(scip, &((*paramdata)->greycolorline), SCIP_MAXSTRLEN) );
752 SCIPsnprintf((*paramdata)->greycolorline, SCIP_MAXSTRLEN,
"%s",
GREY_COLOR_LINE);
755 SCIP_CALL( SCIPaddBoolParam(scip,
756 "visual/draftmode",
"if true no nonzeros are shown (may improve performance)",
759 SCIP_CALL( SCIPaddIntParam(scip,
760 "visual/colorscheme",
"type number: 0=default, 1=black and white, 2=manual",
763 SCIP_CALL( SCIPaddIntParam(scip,
764 "visual/nonzeroradius",
"integer value to scale points on range 1-10",
767 SCIP_CALL( SCIPaddIntParam(scip,
768 "visual/nmaxdecompstowrite",
"maximum number of decompositions to write (-1: no limit)",
769 &(*paramdata)->nmaxdecompstowrite, FALSE, -1, -1, INT_MAX, NULL, NULL) );
771 SCIP_CALL( SCIPaddStringParam(scip,
772 "visual/pdfreader",
"pdf reader that opens visualizations in decomposition explorer",
773 &(*paramdata)->pdfreader, FALSE,
778 SCIP_CALL( SCIPaddStringParam(scip,
779 "visual/colors/colormastervars",
"color for master variables in hex code",
782 SCIP_CALL( SCIPaddStringParam(scip,
783 "visual/colors/colormasterconss",
"color for master constraints in hex code",
786 SCIP_CALL( SCIPaddStringParam(scip,
787 "visual/colors/colorlinking",
"color for linking variables in hex code",
790 SCIP_CALL( SCIPaddStringParam(scip,
791 "visual/colors/colorstairlinking",
"color for stairlinking variables in hex code",
794 SCIP_CALL( SCIPaddStringParam(scip,
795 "visual/colors/colorblock",
"color for found blocks in hex code",
798 SCIP_CALL( SCIPaddStringParam(scip,
799 "visual/colors/coloropen",
"color for open areas in hex code",
802 SCIP_CALL( SCIPaddStringParam(scip,
803 "visual/colors/colornonzeros",
"color for nonzeros in hex code",
806 SCIP_CALL( SCIPaddStringParam(scip,
807 "visual/colors/colorlines",
"color for lines in hex code",
811 SCIP_CALL( SCIPaddIntParam(scip,
812 "visual/report/maxndecomps",
"maximum number of decompositions shown in report (best scores first)",
815 SCIP_CALL( SCIPaddBoolParam(scip,
816 "visual/report/showtitle",
"if true a title page is included",
819 SCIP_CALL( SCIPaddBoolParam(scip,
820 "visual/report/showtoc",
"if true a table of contents is included",
823 SCIP_CALL( SCIPaddBoolParam(scip,
824 "visual/report/showstatistics",
"if true statistics are included for each decomp",
827 SCIP_CALL( SCIPaddBoolParam(scip,
828 "visual/report/usegp",
"if true gnuplot is used for sub-visualizations in report, otherwise LaTeX/Tikz",