Browse Source

PM_ExportLabels: use int64_t for ODD indexing, adapt printf format string

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@12181 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Joachim Klein 9 years ago
parent
commit
362c6da6c9
  1. 13
      prism/src/mtbdd/PM_ExportLabels.cc

13
prism/src/mtbdd/PM_ExportLabels.cc

@ -26,6 +26,7 @@
// includes
#include "PrismMTBDD.h"
#include <cinttypes>
#include <util.h>
#include <cudd.h>
#include <dd.h>
@ -36,7 +37,7 @@
//------------------------------------------------------------------------------
// local function prototypes
static void export_rec(DdNode **vars, int num_vars, int level, ODDNode *odd, long index);
static void export_rec(DdNode **vars, int num_vars, int level, ODDNode *odd, int64_t index);
// globals
static const char *export_name;
@ -89,7 +90,7 @@ jstring fn // filename
break;
case EXPORT_MATLAB:
for (i = 0; i < num_labels; i++)
export_string("%s_%s=sparse(%d,1);\n", export_name, label_strings[i], odd->eoff+odd->toff);
export_string("%s_%s=sparse(%" PRId64 ",1);\n", export_name, label_strings[i], odd->eoff+odd->toff);
export_string("\n");
break;
case EXPORT_MRMC:
@ -133,7 +134,7 @@ jstring fn // filename
//------------------------------------------------------------------------------
static void export_rec(DdNode **vars, int num_vars, int level, ODDNode *odd, long index)
static void export_rec(DdNode **vars, int num_vars, int level, ODDNode *odd, int64_t index)
{
int i;
bool all_zero;
@ -149,15 +150,15 @@ static void export_rec(DdNode **vars, int num_vars, int level, ODDNode *odd, lon
if (level == num_vars) {
// print state index
switch (export_type) {
case EXPORT_PLAIN: export_string("%d:", index); break;
case EXPORT_MRMC: export_string("%d", index+1); break;
case EXPORT_PLAIN: export_string("%" PRId64 ":", index); break;
case EXPORT_MRMC: export_string("%" PRId64, index+1); break;
}
// print labels
for (i = 0; i < num_labels; i++) {
if (dd_array[level][i] != Cudd_ReadZero(ddman)) {
switch (export_type) {
case EXPORT_PLAIN: export_string(" %d", i); break;
case EXPORT_MATLAB: export_string("%s_%s(%d)=1;\n", export_name, label_strings[i], index+1); break;
case EXPORT_MATLAB: export_string("%s_%s(%" PRId64 ")=1;\n", export_name, label_strings[i], index+1); break;
case EXPORT_MRMC: export_string(" %s", label_strings[i]); break;
}
}

Loading…
Cancel
Save