Scippy

GCG

Branch-and-Price & Column Generation for Everyone

reader_gp.cpp File Reference

Detailed Description

GP file reader writing decompositions to gnuplot files.

Author
Martin Bergner
Hanna Franzen
Michael Bastubbe

Definition in file reader_gp.cpp.

#include <assert.h>
#include <string.h>
#include <cstring>
#include <fstream>
#include "scip/scip.h"
#include "reader_gp.h"
#include "scip_misc.h"
#include "struct_decomp.h"
#include "cons_decomp.h"
#include "cons_decomp.hpp"
#include "pub_decomp.h"
#include "params_visu.h"
#include "class_partialdecomp.h"
#include "class_detprobdata.h"
#include "miscvisualization.h"

Go to the source code of this file.

Macros

#define READER_NAME   "gpreader"
 
#define READER_DESC   "gnuplot file writer for partialdec visualization"
 
#define READER_EXTENSION   "gp"
 
#define SCALING_FACTOR_NONZEROS   0.6
 

Functions

static SCIP_DECL_READERFREE (readerFreeGp)
 
static SCIP_DECL_READERWRITE (readerWriteGp)
 
static SCIP_RETCODE writeGpHeader (SCIP *scip, char *filename, const char *outputname, GP_OUTPUT_FORMAT outputformat)
 
static SCIP_RETCODE drawGpBox (SCIP *scip, char *filename, int objectid, int x1, int y1, int x2, int y2, const char *color)
 
static SCIP_RETCODE writeGpNonzeros (SCIP *scip, const char *filename, PARTIALDECOMP *partialdec, float radius)
 
static SCIP_RETCODE writeGpPartialdec (SCIP *scip, char *filename, PARTIALDECOMP *partialdec)
 Adds the gnuplot body of the partialdec visualization to the given file. More...
 
SCIP_RETCODE GCGwriteGpVisualizationFormat (SCIP *scip, char *filename, char *outputname, int partialdecid, GP_OUTPUT_FORMAT outputformat)
 
SCIP_RETCODE GCGwriteGpVisualization (SCIP *scip, char *filename, char *outputname, int partialdecid)
 
SCIP_RETCODE GCGWriteGpDecompMatrix (SCIP *scip, const char *filename, const char *workfolder, SCIP_Bool originalmatrix)
 
SCIP_RETCODE SCIPincludeReaderGp (SCIP *scip)
 

Macro Definition Documentation

◆ READER_NAME

#define READER_NAME   "gpreader"

Definition at line 57 of file reader_gp.cpp.

◆ READER_DESC

#define READER_DESC   "gnuplot file writer for partialdec visualization"

Definition at line 58 of file reader_gp.cpp.

◆ READER_EXTENSION

#define READER_EXTENSION   "gp"

Definition at line 59 of file reader_gp.cpp.

◆ SCALING_FACTOR_NONZEROS

#define SCALING_FACTOR_NONZEROS   0.6

Definition at line 61 of file reader_gp.cpp.

Function Documentation

◆ SCIP_DECL_READERFREE()

static SCIP_DECL_READERFREE ( readerFreeGp  )
static

Destructor of reader to free user data (called when SCIP is exiting)

Definition at line 72 of file reader_gp.cpp.

References READER_NAME.

◆ SCIP_DECL_READERWRITE()

static SCIP_DECL_READERWRITE ( readerWriteGp  )
static

◆ writeGpHeader()

static SCIP_RETCODE writeGpHeader ( SCIP *  scip,
char *  filename,
const char *  outputname,
GP_OUTPUT_FORMAT  outputformat 
)
static

Write gnuplot file header with terminal etc.

Returns
SCIP status
Parameters
scipSCIP data structure
filenamefilename (including path) to write to
outputnamethe filename to which gnuplot should compile the visualization
outputformatthe output format which gnuplot should emit

Definition at line 119 of file reader_gp.cpp.

References GP_OUTPUT_FORMAT_PDF, GP_OUTPUT_FORMAT_PNG, and GP_OUTPUT_FORMAT_SVG.

Referenced by GCGwriteGpVisualizationFormat().

◆ drawGpBox()

static SCIP_RETCODE drawGpBox ( SCIP *  scip,
char *  filename,
int  objectid,
int  x1,
int  y1,
int  x2,
int  y2,
const char *  color 
)
static

Adds gnuplot code to given file that contains a box with given coordinates and color

Returns
SCIP status
Parameters
scipSCIP data structure
filenamefilename (including path) to write to
objectidid number of box (>0), must be unique
x1x value of lower left vertex coordinate
y1y value of lower left vertex coordinate
x2x value of upper right vertex coordinate
y2y value of upper right vertex coordinate
colorcolor hex code (e.g. #000000) for box filling

Definition at line 159 of file reader_gp.cpp.

References SCIPvisuGetColorLine().

Referenced by writeGpPartialdec().

◆ writeGpNonzeros()

◆ writeGpPartialdec()

static SCIP_RETCODE writeGpPartialdec ( SCIP *  scip,
char *  filename,
PARTIALDECOMP partialdec 
)
static

◆ GCGwriteGpVisualizationFormat()

SCIP_RETCODE GCGwriteGpVisualizationFormat ( SCIP *  scip,
char *  filename,
char *  outputname,
int  partialdecid,
GP_OUTPUT_FORMAT  outputformat 
)
Parameters
scipSCIP data structure
filenamefilename (including path) to write to
outputnamefilename for compiled output file
partialdecidid of partialdec to visualize
outputformatthe output format which gnuplot should emit

Definition at line 449 of file reader_gp.cpp.

References GCGconshdlrDecompGetPartialdecFromID(), gcg::PARTIALDECOMP::getDetprobdata(), writeGpHeader(), and writeGpPartialdec().

Referenced by GCGwriteGpVisualization(), and gcg::PARTIALDECOMP::writeVisualizationFile().

◆ GCGwriteGpVisualization()

SCIP_RETCODE GCGwriteGpVisualization ( SCIP *  scip,
char *  filename,
char *  outputname,
int  partialdecid 
)

Writes a visualization as .pdf file for the given partialdec

Returns
SCIP status
Parameters
scipSCIP data structure
filenamefilename (including path) to write to
outputnamefilename for compiled output file
partialdecidid of partialdec to visualize

Definition at line 483 of file reader_gp.cpp.

References GCGwriteGpVisualizationFormat(), and GP_OUTPUT_FORMAT_PDF.

Referenced by gcg::PARTIALDECOMP::exportVisualization(), GCGWriteGpDecompMatrix(), GCGwriteTexReport(), GCGwriteTexVisualization(), and SCIP_DECL_READERWRITE().

◆ GCGWriteGpDecompMatrix()

SCIP_RETCODE GCGWriteGpDecompMatrix ( SCIP *  scip,
const char *  filename,
const char *  workfolder,
SCIP_Bool  originalmatrix 
)

Creates a block matrix and outputs its visualization as .pdf file

Returns
SCIP return code

Definition at line 496 of file reader_gp.cpp.

References GCGconshdlrDecompAddMatrixPartialdec(), GCGconshdlrDecompGetPartialdecFromID(), GCGgetVisualizationFilename(), and GCGwriteGpVisualization().

Referenced by writeMatrix().

◆ SCIPincludeReaderGp()

SCIP_RETCODE SCIPincludeReaderGp ( SCIP *  scip)

Includes the gp file reader into SCIP

Returns
SCIP status
Parameters
scipSCIP data structure

Definition at line 527 of file reader_gp.cpp.

References READER_DESC, READER_EXTENSION, and READER_NAME.

Referenced by SCIPincludeGcgPlugins().