- Fixed weird behaviour of executeStep restoration.
This commit is contained in:
parent
7769fdbdf6
commit
7ad99f977c
12
src/main.c
12
src/main.c
@ -101,6 +101,7 @@ main (int argc, char **argv)
|
|||||||
struct arg_lit *switchSS = arg_lit0 (NULL, "state-space", "output state space graph.");
|
struct arg_lit *switchSS = arg_lit0 (NULL, "state-space", "output state space graph.");
|
||||||
struct arg_lit *switchFC = arg_lit0 (NULL, "force-choose", "force only explicit choose events.");
|
struct arg_lit *switchFC = arg_lit0 (NULL, "force-choose", "force only explicit choose events.");
|
||||||
struct arg_lit *switchRS = arg_lit0 (NULL, "read-symm", "enable read symmetry reductions.");
|
struct arg_lit *switchRS = arg_lit0 (NULL, "read-symm", "enable read symmetry reductions.");
|
||||||
|
struct arg_lit *switchAS = arg_lit0 (NULL, "no-agent-symm", "disable agent symmetry reductions.");
|
||||||
struct arg_lit *switchSO = arg_lit0 (NULL, "symm-order", "enable ordering symmetry reductions.");
|
struct arg_lit *switchSO = arg_lit0 (NULL, "symm-order", "enable ordering symmetry reductions.");
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
struct arg_int *porparam = arg_int0 (NULL, "pp", NULL, "POR parameter.");
|
struct arg_int *porparam = arg_int0 (NULL, "pp", NULL, "POR parameter.");
|
||||||
@ -128,6 +129,7 @@ main (int argc, char **argv)
|
|||||||
switchSS,
|
switchSS,
|
||||||
switchFC,
|
switchFC,
|
||||||
switchRS,
|
switchRS,
|
||||||
|
switchAS,
|
||||||
switchSO,
|
switchSO,
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
porparam,
|
porparam,
|
||||||
@ -278,23 +280,21 @@ main (int argc, char **argv)
|
|||||||
/* generate system */
|
/* generate system */
|
||||||
sys = systemInit ();
|
sys = systemInit ();
|
||||||
if (switchFC->count > 0)
|
if (switchFC->count > 0)
|
||||||
{
|
|
||||||
/* force explicit chooses */
|
/* force explicit chooses */
|
||||||
sys->switchForceChoose = 1;
|
sys->switchForceChoose = 1;
|
||||||
}
|
|
||||||
if (switchRS->count > 0)
|
if (switchRS->count > 0)
|
||||||
{
|
{
|
||||||
if (switchSO->count > 0)
|
if (switchSO->count > 0)
|
||||||
{
|
|
||||||
error ("--read-symm and --symm-order cannot be used at the same time.");
|
error ("--read-symm and --symm-order cannot be used at the same time.");
|
||||||
}
|
|
||||||
sys->switchReadSymm = 1;
|
sys->switchReadSymm = 1;
|
||||||
}
|
}
|
||||||
if (switchSO->count > 0)
|
if (switchSO->count > 0)
|
||||||
{
|
|
||||||
/* enable symmetry order */
|
/* enable symmetry order */
|
||||||
sys->switchSymmOrder = 1;
|
sys->switchSymmOrder = 1;
|
||||||
}
|
if (switchAS->count > 0)
|
||||||
|
/* disable agent symmetry order */
|
||||||
|
sys->switchAgentSymm = 0;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
sys->porparam = porparam->ival[0];
|
sys->porparam = porparam->ival[0];
|
||||||
#endif
|
#endif
|
||||||
|
@ -468,11 +468,13 @@ explorify (const System sys, const int run)
|
|||||||
{
|
{
|
||||||
/* traverse the system after the step */
|
/* traverse the system after the step */
|
||||||
flag = traverse (sys);
|
flag = traverse (sys);
|
||||||
|
}
|
||||||
|
/* restore executeStep "damage" */
|
||||||
runPointerSet (sys, run, rd); // reset rd pointer
|
runPointerSet (sys, run, rd); // reset rd pointer
|
||||||
sys->runs[run].step = myStep; // reset local index
|
sys->runs[run].step = myStep; // reset local index
|
||||||
sys->step--;
|
sys->step--;
|
||||||
indentSet (sys->step);
|
indentSet (sys->step);
|
||||||
}
|
|
||||||
if (roleCap != NULL)
|
if (roleCap != NULL)
|
||||||
{
|
{
|
||||||
roleCap->next = roleCapPart;
|
roleCap->next = roleCapPart;
|
||||||
|
@ -66,6 +66,7 @@ systemInit ()
|
|||||||
sys->switchStatespace = 0;
|
sys->switchStatespace = 0;
|
||||||
sys->switchForceChoose = 0; // don't force explicit chooses by default
|
sys->switchForceChoose = 0; // don't force explicit chooses by default
|
||||||
sys->switchReadSymm = 0; // don't force read symmetries by default
|
sys->switchReadSymm = 0; // don't force read symmetries by default
|
||||||
|
sys->switchAgentSymm = 1; // default enable agent symmetry
|
||||||
sys->switchSymmOrder = 0; // don't force symmetry order reduction by default
|
sys->switchSymmOrder = 0; // don't force symmetry order reduction by default
|
||||||
|
|
||||||
/* set illegal traversal by default, to make sure it is set
|
/* set illegal traversal by default, to make sure it is set
|
||||||
|
@ -211,6 +211,7 @@ struct system
|
|||||||
int switchStatespace; //!< Output statespace for dot package
|
int switchStatespace; //!< Output statespace for dot package
|
||||||
int switchForceChoose; //!< Force chooses for each run, even if involved in first read
|
int switchForceChoose; //!< Force chooses for each run, even if involved in first read
|
||||||
int switchReadSymm; //!< Enable read symmetry reduction
|
int switchReadSymm; //!< Enable read symmetry reduction
|
||||||
|
int switchAgentSymm; //!< Enable agent symmetry reduction
|
||||||
int switchSymmOrder; //!< Enable symmetry order reduction
|
int switchSymmOrder; //!< Enable symmetry order reduction
|
||||||
|
|
||||||
//! Latex output switch.
|
//! Latex output switch.
|
||||||
|
Loading…
Reference in New Issue
Block a user