* array[MAXBACKTRACE];
82assert(subscipdepth >= 0);
86 if( subscipdepth > MAXSUBSCIPDEPTH )
89size = backtrace(array, MAXBACKTRACE);
90strings = backtrace_symbols(array, size);
91 if( strings ==
NULL)
94 for( i = 0; i < size; i++ )
95strncpy(iterinitbacktrace[subscipdepth][iterpos][i], strings[i],
sizeof(iterinitbacktrace[0][0][0]));
98 while( size < MAXBACKTRACE )
99iterinitbacktrace[subscipdepth][iterpos][size++][0] =
'\0';
111assert(subscipdepth >= 0);
112 if( subscipdepth >= MAXSUBSCIPDEPTH )
114 SCIPerrorMessage(
"subscip depth %d too high to report active iterators", subscipdepth);
121 for( j = 0; j < MAXBACKTRACE; ++j )
123 if( iterinitbacktrace[subscipdepth][i][j][0] ==
'\0')
130#define storeBacktrace(subscipdepth, iterpos) 138 SCIPerrorMessage(
"Rebuild with SCIP_DEBUG_EXPRITER defined in src/scip/expriter.c to see where currently " 139 "active iterators were initialized.\n");
148assert(iterator !=
NULL);
200assert(iterator !=
NULL);
205 if( size > iterator->
dfssize)
207 intnewsize = size * 2;
224assert(iterator !=
NULL);
225assert(expr !=
NULL);
242assert(iterator !=
NULL);
263assert(child !=
NULL);
294assert(iterator !=
NULL);
303assert(expr !=
NULL);
314assert(child !=
NULL);
344assert(iterator !=
NULL);
357++iterdata->currentchild;
364 while( iterdata->currentchild < iterator->
curr->
nchildren)
372++iterdata->currentchild;
382 returniterator->
curr;
389assert(iterdata->currentchild < iterator->
curr->
nchildren);
392child = iterator->
curr->
children[iterdata->currentchild];
407iterdata->visitedtag = iterator->
visitedtag;
412 returniterdata->parent;
433assert(stat !=
NULL);
434assert(blkmem !=
NULL);
435assert(iterator !=
NULL);
439(*iterator)->stat = stat;
440(*iterator)->blkmem = blkmem;
450assert(iterator !=
NULL);
451assert(*iterator !=
NULL);
452assert((*iterator)->blkmem !=
NULL);
456assert((*iterator)->queue ==
NULL);
457assert((*iterator)->dfsnvisited ==
NULL);
458assert((*iterator)->dfsexprs ==
NULL);
469#undef SCIPexpriterIsInit 470#undef SCIPexpriterGetCurrent 471#undef SCIPexpriterGetStageDFS 472#undef SCIPexpriterGetChildIdxDFS 473#undef SCIPexpriterGetChildExprDFS 474#undef SCIPexpriterGetParentDFS 475#undef SCIPexpriterGetCurrentUserData 476#undef SCIPexpriterGetChildUserDataDFS 477#undef SCIPexpriterGetExprUserData 478#undef SCIPexpriterSetCurrentUserData 479#undef SCIPexpriterSetExprUserData 480#undef SCIPexpriterSetChildUserData 481#undef SCIPexpriterIsEnd 489assert(iterator !=
NULL);
508assert(iterator !=
NULL);
520 SCIPerrorMessage(
"Maximal number of active expression iterators reached at subscip-depth %d.\n",
598iterator->
curr= expr;
635assert(iterator !=
NULL);
647iterator->
curr= expr;
655 returniterator->
curr;
669assert(iterator !=
NULL);
671 if( (iterator->
dfsstage& stopstages) == 0 )
687assert(iterator !=
NULL);
689 returniterator->
curr;
700assert(iterator !=
NULL);
711assert(iterator !=
NULL);
725assert(iterator !=
NULL);
744assert(iterator !=
NULL);
760assert(iterator !=
NULL);
775assert(iterator !=
NULL);
795assert(iterator !=
NULL);
796assert(expr !=
NULL);
811assert(iterator !=
NULL);
828assert(iterator !=
NULL);
843assert(iterator !=
NULL);
917 returniterator->
curr;
934assert(iterator !=
NULL);
949 returniterator->
curr;
964 returniterator->
curr;
973assert(iterator !=
NULL);
#define SCIP_CALL_ABORT(x)
private functions to work with algebraic expressions
static SCIP_EXPR * doBfsNext(SCIP_EXPRITER *iterator)
static SCIP_EXPR * doDfsNext(SCIP_EXPRITER *iterator)
#define storeBacktrace(subscipdepth, iterpos)
static void printBacktraces(int subscipdepth)
static SCIP_RETCODE ensureStackSize(SCIP_EXPRITER *iterator, int size)
static void deinit(SCIP_EXPRITER *iterator)
void SCIPexpriterFree(SCIP_EXPRITER **iterator)
static void reverseTopologicalInsert(SCIP_EXPRITER *iterator, SCIP_EXPR *expr)
static SCIP_EXPR * doReverseTopologicalNext(SCIP_EXPRITER *iterator)
SCIP_RETCODE SCIPexpriterCreate(SCIP_STAT *stat, BMS_BLKMEM *blkmem, SCIP_EXPRITER **iterator)
int SCIPexprGetNChildren(SCIP_EXPR *expr)
SCIP_Bool SCIPexpriterIsEnd(SCIP_EXPRITER *iterator)
SCIP_EXPR * SCIPexpriterSkipDFS(SCIP_EXPRITER *iterator)
SCIP_EXPRITER_USERDATA SCIPexpriterGetCurrentUserData(SCIP_EXPRITER *iterator)
void SCIPexpriterSetExprUserData(SCIP_EXPRITER *iterator, SCIP_EXPR *expr, SCIP_EXPRITER_USERDATA userdata)
SCIP_EXPR * SCIPexpriterGetCurrent(SCIP_EXPRITER *iterator)
void SCIPexpriterSetStagesDFS(SCIP_EXPRITER *iterator, SCIP_EXPRITER_STAGE stopstages)
SCIP_Bool SCIPexpriterIsInit(SCIP_EXPRITER *iterator)
SCIP_EXPR * SCIPexpriterRestartDFS(SCIP_EXPRITER *iterator, SCIP_EXPR *expr)
SCIP_EXPR * SCIPexpriterGetParentDFS(SCIP_EXPRITER *iterator)
void SCIPexpriterSetCurrentUserData(SCIP_EXPRITER *iterator, SCIP_EXPRITER_USERDATA userdata)
SCIP_EXPR * SCIPexpriterGetNext(SCIP_EXPRITER *iterator)
SCIP_EXPR ** SCIPexprGetChildren(SCIP_EXPR *expr)
void SCIPexpriterSetChildUserData(SCIP_EXPRITER *iterator, SCIP_EXPRITER_USERDATA userdata)
int SCIPexpriterGetChildIdxDFS(SCIP_EXPRITER *iterator)
SCIP_EXPRITER_USERDATA SCIPexpriterGetChildUserDataDFS(SCIP_EXPRITER *iterator)
SCIP_EXPRITER_STAGE SCIPexpriterGetStageDFS(SCIP_EXPRITER *iterator)
SCIP_RETCODE SCIPexpriterInit(SCIP_EXPRITER *iterator, SCIP_EXPR *expr, SCIP_EXPRITER_TYPE type, SCIP_Bool allowrevisit)
SCIP_EXPRITER_USERDATA SCIPexpriterGetExprUserData(SCIP_EXPRITER *iterator, SCIP_EXPR *expr)
SCIP_EXPR * SCIPexpriterGetChildExprDFS(SCIP_EXPRITER *iterator)
void SCIPqueueFree(SCIP_QUEUE **queue)
SCIP_RETCODE SCIPqueueCreate(SCIP_QUEUE **queue, int initsize, SCIP_Real sizefac)
void SCIPqueueClear(SCIP_QUEUE *queue)
SCIP_RETCODE SCIPqueueInsert(SCIP_QUEUE *queue, void *elem)
SCIP_Bool SCIPqueueIsEmpty(SCIP_QUEUE *queue)
void * SCIPqueueRemove(SCIP_QUEUE *queue)
#define BMSfreeBlockMemory(mem, ptr)
#define BMSfreeBlockMemoryArray(mem, ptr, num)
#define BMSreallocBlockMemoryArray(mem, ptr, oldnum, newnum)
#define BMSallocClearBlockMemory(mem, ptr)
struct BMS_BlkMem BMS_BLKMEM
public methods for message output
public data structures and miscellaneous methods
SCIP_EXPRITER_TYPE itertype
SCIP_EXPRITER_STAGE dfsstage
SCIP_EXPRITERDATA iterdata[SCIP_EXPRITER_MAXNACTIVE]
SCIP_Longint exprlastvisitedtag
structure definitions related to algebraic expressions
datastructures for problem statistics
#define SCIP_EXPRITER_MAXNACTIVE
struct SCIP_ExprIterData SCIP_EXPRITERDATA
#define SCIP_EXPRITER_VISITINGCHILD
@ SCIP_EXPRITER_RTOPOLOGIC
#define SCIP_EXPRITER_VISITEDCHILD
#define SCIP_EXPRITER_LEAVEEXPR
#define SCIP_EXPRITER_ENTEREXPR
unsigned int SCIP_EXPRITER_STAGE
enum SCIP_Retcode SCIP_RETCODE
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4