47#define READER_NAME "timreader"
48#define READER_DESC "file reader for the TIME file of a stochastic program in SMPS format"
49#define READER_EXTENSION "tim"
55#define TIM_MAX_LINELEN 1025
56#define TIM_MAX_NAMELEN 256
57#define TIM_DEFAULT_STAGESIZE 10
58#define TIM_DEFAULT_ARRAYSIZE 100
80 const char** stagestartvars;
81 const char** stagestartcons;
82 const char** stagenames;
208 if(
i > 0 && stage < readerdata->
nstages - 1
209 && strcmp(
SCIPcorGetVarName(correader,
i), readerdata->stagestartvars[stage + 1]) == 0 )
222 if(
i > 0 && stage < readerdata->
nstages - 1
257 readerdata->read =
TRUE;
258 readerdata->nstages = timi->
nstages;
265 for(
i = 0;
i < readerdata->nstages;
i++ )
276 readerdata->stages[
i]->nvars = 0;
277 readerdata->stages[
i]->nconss = 0;
284 hashmapsize = (int)
SCIPceil(
scip, (SCIP_Real)
nvars/(SCIP_Real) readerdata->nstages);
310 if( readerdata->read )
312 for(
i = 0;
i < readerdata->nstages;
i++ )
354 (*timi)->haserror =
FALSE;
355 (*timi)->buf [0] =
'\0';
356 (*timi)->probname[0] =
'\0';
361 (*timi)->nstages = 0;
380 for(
i = 0;
i < (*timi)->nstages;
i++ )
508 const char* consname,
525 const char* stagename,
558 for(
i = pos;
i < 80;
i++)
577 timi->
f0 = timi->
f1 = timi->
f2 = timi->
f3 = 0;
587 while( *timi->
buf ==
'*' );
590 len = (
unsigned int) strlen(timi->
buf);
592 for(
i = 0;
i < len;
i++ )
593 if( (timi->
buf[
i] ==
'\t') || (timi->
buf[
i] ==
'\n') || (timi->
buf[
i] ==
'\r') )
746 SCIP_Bool error =
TRUE;
828 if( correader ==
NULL )
863 readerdata->read =
FALSE;
880 const char* filename,
909 readerdata->read =
TRUE;
933 return readerdata->read;
953 return readerdata->nstages;
974 return readerdata->stagenames[stagenum];
999 for(
i = 0;
i < readerdata->nstages;
i++ )
1001 for( j = 0; j < readerdata->stages[
i]->nconss; j++ )
1003 if( strcmp(
SCIPconsGetName(readerdata->stages[
i]->conss[j]), consname) == 0 )
1015 return readerdata->stagenames[stagenum];
1038 for(
i = 0;
i < readerdata->nstages;
i++ )
1040 if( strcmp(readerdata->stagenames[
i], stage) == 0 )
1049 SCIPerrorMessage(
"Stage <%s> was not found in the TIM file. Check the SMPS files (COR, TIM and STO)\n", stage);
1074 return readerdata->stages[stagenum]->vars;
1095 return readerdata->stages[stagenum]->conss;
1116 return readerdata->stages[stagenum]->nvars;
1137 return readerdata->stages[stagenum]->nconss;
#define SCIP_CALL_TERMINATE(retcode, x, TERM)
#define SCIP_CALL_FINALLY(x, y)
SCIP_FILE * SCIPfopen(const char *path, const char *mode)
int SCIPfclose(SCIP_FILE *fp)
char * SCIPfgets(char *s, int size, SCIP_FILE *stream)
SCIP_RETCODE SCIPreadTim(SCIP *scip, const char *filename, SCIP_RESULT *result)
const char * SCIPcorGetVarName(SCIP_READER *reader, int i)
SCIP_Bool SCIPcorHasRead(SCIP_READER *reader)
const char * SCIPcorGetConsName(SCIP_READER *reader, int i)
int SCIPcorGetNConsNames(SCIP_READER *reader)
int SCIPcorGetNVarNames(SCIP_READER *reader)
SCIP_RETCODE SCIPincludeReaderTim(SCIP *scip)
int SCIPgetNVars(SCIP *scip)
SCIP_VAR * SCIPfindVar(SCIP *scip, const char *name)
SCIP_CONS * SCIPfindCons(SCIP *scip, const char *name)
void SCIPhashmapFree(SCIP_HASHMAP **hashmap)
SCIP_RETCODE SCIPhashmapInsert(SCIP_HASHMAP *hashmap, void *origin, void *image)
SCIP_RETCODE SCIPhashmapCreate(SCIP_HASHMAP **hashmap, BMS_BLKMEM *blkmem, int mapsize)
void SCIPwarningMessage(SCIP *scip, const char *formatstr,...)
const char * SCIPconsGetName(SCIP_CONS *cons)
#define SCIPfreeBlockMemoryArray(scip, ptr, num)
#define SCIPensureBlockMemoryArray(scip, ptr, arraysizeptr, minsize)
#define SCIPallocBlockMemoryArray(scip, ptr, num)
#define SCIPfreeBlockMemory(scip, ptr)
#define SCIPallocBlockMemory(scip, ptr)
#define SCIPduplicateBlockMemoryArray(scip, ptr, source, num)
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_READER * SCIPfindReader(SCIP *scip, const char *name)
SCIP_RETCODE SCIPsetReaderRead(SCIP *scip, SCIP_READER *reader,)
const char * SCIPreaderGetName(SCIP_READER *reader)
SCIP_RETCODE SCIPsetReaderFree(SCIP *scip, SCIP_READER *reader,)
SCIP_Real SCIPceil(SCIP *scip, SCIP_Real val)
void SCIPprintSysError(const char *message)
char * SCIPstrtok(char *s, const char *delim, char **ptrptr)
int SCIPmemccpy(char *dest, const char *src, char stop, unsigned int cnt)
assert(minobj< SCIPgetCutoffbound(scip))
BMS_BLKMEM * SCIPblkmem(SCIP *scip)
public methods for managing constraints
wrapper functions to map file i/o to standard or zlib file i/o
struct SCIP_File SCIP_FILE
public methods for message output
public data structures and miscellaneous methods
public methods for input file readers
COR file reader (MPS format of the core problem for stochastic programs)
static SCIP_RETCODE timinputCreate(SCIP *scip, TIMINPUT **timi, SCIP_FILE *fp)
static SCIP_RETCODE addConstraintToStage(SCIP *scip, TIMSTAGE *stage, const char *consname)
int SCIPtimFindStage(SCIP *scip, const char *stage)
#define TIM_DEFAULT_STAGESIZE
static const char * timinputField0(const TIMINPUT *timi)
static void timinputFree(SCIP *scip, TIMINPUT **timi)
static SCIP_RETCODE createReaderdata(SCIP *scip, SCIP_READER *reader, TIMINPUT *timi)
static SCIP_RETCODE timinputSetStageStartVar(TIMINPUT *timi, SCIP *scip, const char *varname, int stagenum)
static SCIP_RETCODE createStages(SCIP *scip, SCIP_READER *reader, SCIP_READER *correader)
static void clearFrom(char *buf, unsigned int pos)
static const char * timinputField3(const TIMINPUT *timi)
enum TimSection TIMSECTION
static void timinputSetProbname(TIMINPUT *timi, const char *probname)
int SCIPtimGetStageNVars(SCIP *scip, int stagenum)
static void timinputSetSection(TIMINPUT *timi, TIMSECTION section)
static SCIP_Bool timinputReadLine(TIMINPUT *timi)
static SCIP_RETCODE readTime(SCIP *scip, TIMINPUT *timi)
static const char * timinputField1(const TIMINPUT *timi)
SCIP_VAR ** SCIPtimGetStageVars(SCIP *scip, int stagenum)
static SCIP_RETCODE timinputSetStageStartCons(TIMINPUT *timi, SCIP *scip, const char *consname, int stagenum)
static SCIP_RETCODE timinputSetStageName(TIMINPUT *timi, SCIP *scip, const char *stagename, int stagenum)
SCIP_Bool SCIPtimHasRead(SCIP_READER *reader)
int SCIPtimGetNStages(SCIP *scip)
static const char * timinputField2(const TIMINPUT *timi)
const char * SCIPtimGetStageName(SCIP *scip, int stagenum)
#define TIM_DEFAULT_ARRAYSIZE
static SCIP_RETCODE readTim(SCIP *scip, SCIP_READER *reader, const char *filename)
static SCIP_RETCODE addVariableToStage(SCIP *scip, TIMSTAGE *stage, const char *varname)
static TIMSECTION timinputSection(const TIMINPUT *timi)
SCIP_CONS ** SCIPtimGetStageConss(SCIP *scip, int stagenum)
static void freeReaderdata(SCIP *scip, SCIP_READER *reader)
static void timinputSyntaxerror(TIMINPUT *timi)
static SCIP_RETCODE readPeriods(TIMINPUT *timi, SCIP *scip)
static SCIP_Bool timinputHasError(const TIMINPUT *timi)
int SCIPtimGetStageNConss(SCIP *scip, int stagenum)
const char * SCIPtimConsGetStageName(SCIP *scip, const char *consname)
TIM file reader - the stage information for a stochastic programming instance in SMPS format.
public methods for memory management
public methods for message handling
public methods for numerical tolerances
public methods for global and local (sub)problems
public methods for reader plugins
SCIP_HASHMAP * consnametocons
SCIP_HASHMAP * varnametovar
struct SCIP_ReaderData SCIP_READERDATA
#define SCIP_DECL_READERREAD(x)
#define SCIP_DECL_READERCOPY(x)
#define SCIP_DECL_READERFREE(x)
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE